quanyawei
2023-10-27 52d463e03c1f074099ed8e8a6b7c3ddde52d2708
pages/actionChange/workOrderDetails/index.vue
New file
@@ -0,0 +1,132 @@
<template>
   <view class="mainContent">
      <basicInfor :basic-infor="basicInfor" />
      <rectificationInfor ref="rectificationInfor" :basic-infor="basicInfor"
         v-if="!(pageState === 'view' && basicInfor.state === 20)" />
      <approvalnfor ref="approvalnfor" v-if="basicInfor.state >= 30" :basic-infor="basicInfor" />
      <view class="bunts">
         <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>
   </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.navigateBack({
            delta: 1, //返回上上一级注意这里要设置为2
         })
         return false
      },
      methods: {
         radioGroupChange(e) {
            console.log('radioGroupe,e', this.workForme.isChange)
         },
         close() {
            uni.$emit('currIndex', {
               data: {
                  index: '0',
                  showTabBar: true
               }
            })
            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;
   }
   .bunts {
      display: flex;
      margin-top: 20px;
      margin-bottom: 96.15rpx;
      padding: 0 20px;
      justify-content: center;
      .but {
         width: 50%;
      }
      .butRight {
         padding-right: 20px;
      }
      .butleft {
         padding-left: 20px;
      }
   }
</style>