quanyawei
2023-11-20 5f8cd55f32939d15c6224d491f89743421cab0f9
pages/actionChange/workOrderDetails/index.vue
@@ -1,93 +1,185 @@
<template>
   <view class="mainContent">
      <basicInfor :basic-infor="basicInfor" />
      <rectificationInfor ref="rectificationInfor" :basic-infor="basicInfor" />
      <approvalnfor ref="approvalnfor" v-if="basicInfor.state >= 30" :basic-infor="basicInfor" />
      <view class="bunts">
         <u-button shape="square" @click="close">关闭</u-button>
         <u-button
            v-if="pageState==='edit'"
            shape="square"
            type="primary"
            @click="submit"
         >
            提交
         </u-button>
      <u-sticky>
         <u-alert v-if="basicInfor.invalidReason" :title="`已作废:${basicInfor.invalidReason}`" type="warning"
            :description="description"></u-alert>
      </u-sticky>
      <basicInfor :basic-infor="basicInfor" v-if="basicInfor.unitId" />
      <rectificationInfor ref="rectificationInfor" :basic-infor="basicInfor"
         v-if="!(pageState === 'view' && basicInfor.state === 20)&&isShow" />
      <approvalnfor ref="approvalnfor" v-if="basicInfor.state >= 30 && basicInfor.stateName!=='待完成' && isShow"
         :basic-infor="basicInfor" />
      <view class="bunts" v-if="isShow">
         <view class="but butRight">
            <u-button shape="square" @click="refuse" type="error"
               v-if="pageState==='edit'&& basicInfor.state >= 30">拒绝</u-button>
            <u-button shape=" square" @click="close" v-else>关闭</u-button>
         </view>
         <view class="but butleft" v-if="pageState==='edit'">
            <u-button shape="square" type="primary" @click="submit"> 提交 </u-button>
         </view>
      </view>
      <u-overlay :show="show" :mask-click-able='false' opacity='0.8'>
      </u-overlay>
   </view>
</template>
<script>
import basicInfor from '../components/basicInfor.vue'
import rectificationInfor from '../components/rectificationInfor.vue'
import approvalnfor from '../components/approvalnfor.vue'
export default {
   components: {
      basicInfor,
      rectificationInfor,
      approvalnfor,
   },
   data() {
      return {
         basicInfor: {}
      }
   },
   computed: {
      pageState() {
         return this.basicInfor.pageState
      }
   },
   onLoad: function(option) {
      console.log('option', option)
      //option为object类型,会序列化上个页面传递的参数
      this.basicInfor = JSON.parse(option.infor)
   },
   onBackPress(e) {
      uni.navigateTo({
         url: '/pages/actionChange/agencyPage/index',
      })
      return false
   },
   methods: {
      radioGroupChange(e) {
         console.log('radioGroupe,e', this.workForme.isChange)
   import basicInfor from '../components/basicInfor.vue'
   import rectificationInfor from '../components/rectificationInfor.vue'
   import approvalnfor from '../components/approvalnfor.vue'
   export default {
      components: {
         basicInfor,
         rectificationInfor,
         approvalnfor,
      },
      close() {
         let pages = getCurrentPages() // 当前页面
         let beforePage = pages[pages.length - 3] // 上上一页
         //beforePage.$vm.reFresh = Math.random()//触发上一页监听器
         uni.navigateBack({
            delta: 1, //返回上上一级注意这里要设置为2
            success: function() {
               // beforePage.$vm.reFresh()
      data() {
         return {
            basicInfor: {},
            unitListL: [],
            userInfor: null,
            show: true,
            isShow: false,
            option: {}
         }
      },
      computed: {
         pageState() {
            return this.basicInfor.pageState
         },
      },
      created() {},
      onLoad(option) {
         //option为object类型,会序列化上个页面传递的参数
         this.basicInfor = JSON.parse(option.infor)
         // let type = JSON.parse(option.type)
         console.log('option', option)
         this.option = option
      },
      async mounted() {
         await this.$onLaunched
         //等待登录成功
         this.userInfor = JSON.parse(uni.getStorageSync('userInfor') || 'null')
         console.log('详情页的用户信息', this.userInfor)
         if (this.option.type === 'share' && this.userInfor) {
            let params = {
               allocationNum: this.basicInfor.allocationNum,
               userId: this.userInfor.userId
            }
         })
      },
      submit() {
         Promise.all([this.$refs.rectificationInfor && this.$refs.rectificationInfor.formVali(), this.$refs
            .approvalnfor && this.$refs.approvalnfor.formVali()
         ]) //
            .then(()=> {
               let api = this.basicInfor.state >= 30 ? '/allocation/check' : '/allocation/change' //审批
               let form = this.basicInfor.state >=30 ? this.$refs.approvalnfor.form : this.$refs.rectificationInfor.form
               let data = {
                  allocationId: this.basicInfor.allocationId,
                  ...form,
                  state: this.basicInfor.state,
            this.$http.httpGet('/allocationApp/authority', params).then(res => {
               console.log('权限控制参数', res)
               if (res.data.code === 3) {
                  uni.showModal({
                     content: '您暂无操作权限,请联系管理员!',
                     showCancel: false,
                     confirmText: '确定',
                     success: res => {
                        if (res.confirm) {
                           uni.reLaunch({
                              url: '/pages/index/index',
                           })
                        }
                     },
                  })
               } else if (res.data.code === 1) {
                  // 可以编辑
                  this.basicInfor.pageState = 'edit'
                  this.basicInfor.stateName = res.data.name
                  this.getData()
               } else if (res.data.code === 2) {
                  // 可以看
                  this.basicInfor.pageState = 'view'
                  this.basicInfor.stateName = res.data.name
                  this.getData()
               }
               this.$http.httpPost(api, data).then((res)=> {
                  this.close()
            }).catch(errors => {
               console.log('获取失败的信息', errors)
               console.log('获取失败的信息params', params)
            })
         } else {
            this.isShow = true
            this.getData()
         }
      },
      methods: {
         getData() {
            this.$http.httpGet('/allocation/detail', {
               id: this.basicInfor.allocationId
            }).then(res => {
               this.basicInfor = {
                  ...this.basicInfor,
                  ...res.data
               }
               console.log('this.basicInfor123', this.basicInfor)
               let time = this.basicInfor.time.slice(5)
               this.share.title = `${this.basicInfor.unitName}-${time}的交办单`
               this.show = false
               this.isShow = true
            })
         },
         radioGroupChange(e) {
            console.log('radioGroupe,e', this.workForme.isChange)
         },
         close() {
            uni.$emit('currIndex', {
               data: {
                  index: '0',
                  showTabBar: true
               }
            })
            if (this.option.type === 'share') {
               uni.redirectTo({
                  url: '/pages/index/index',
               })
            })
            .catch(err=> {
               console.log('文件上传异常:', err)
            })
      }
   },
}
            } else {
               uni.navigateBack({
                  delta: 1, //返回上上一级注意这里要设置为2
               })
            }
         },
         refuse() {
            Promise.all([this.$refs.rectificationInfor && this.$refs.rectificationInfor.formVali(), this.$refs
                  .approvalnfor && this.$refs.approvalnfor.formVali()
               ]) //
               .then(() => {
                  let api = this.basicInfor.state >= 30 ? '/allocation/check' : '/allocation/change' //审批
                  let form = this.basicInfor.state >= 30 ? this.$refs.approvalnfor.form : this.$refs
                     .rectificationInfor.form
                  let data = {
                     allocationId: this.basicInfor.allocationId,
                     ...form,
                     state: 50,
                  }
                  this.$http.httpPost(api, data).then(res => {
                     this.close()
                  })
               }).catch(err => {
                  console.log('拒绝失败:', err)
               })
         },
         submit() {
            Promise.all([this.$refs.rectificationInfor && this.$refs.rectificationInfor.formVali(), this.$refs
                  .approvalnfor && this.$refs.approvalnfor.formVali()
               ]) //
               .then(() => {
                  let api = this.basicInfor.state >= 30 ? '/allocation/check' : '/allocation/change' //审批
                  let form = this.basicInfor.state >= 30 ? this.$refs.approvalnfor.form : this.$refs
                     .rectificationInfor.form
                  let data = {
                     allocationId: this.basicInfor.allocationId,
                     ...form,
                     state: this.basicInfor.state === 20 ? 30 : 40,
                  }
                  this.$http.httpPost(api, data).then(res => {
                     this.close()
                  })
               }).catch(err => {
                  console.log('提交失败:', err)
               })
         }
      },
   }
</script>
<style scoped lang="scss">
   .mainContent {
      padding-bottom: 38.46rpx;
@@ -98,9 +190,18 @@
      margin-top: 20px;
      margin-bottom: 96.15rpx;
      padding: 0 20px;
      justify-content: center;
      .u-button {
         width: 288.46rpx;
      .but {
         width: 50%;
      }
      .butRight {
         padding-right: 20px;
      }
      .butleft {
         padding-left: 20px;
      }
   }
</style>