licp
2024-04-19 e04fbe73f7785155bffe3db30a7ead37f9200f06
src/components/view/b1-report-preparation.vue
@@ -99,25 +99,55 @@
            <el-button type="primary" @click="confirmClaim">确 定</el-button>
         </span>
      </el-dialog>
    <el-dialog title="报告审核" :visible.sync="issuedVisible" width="22cm" :modal-append-to-body="false" :fullscreen="fullscreen">
      <div class="full-screen">
    <el-dialog title="报告审核" :visible.sync="issuedVisible" width="400px" :modal-append-to-body="false" :fullscreen="fullscreen">
      <!-- <div class="full-screen">
        <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen=true;" v-if="!fullscreen"></i>
        <img src="../../../static/img/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen=false;" >
      </div>
      <div class="btns">
      </div> -->
      <!-- <div class="btns">
        <el-button type="primary" size="small">通过</el-button>
        <el-button size="small">不通过</el-button>
      </div>
      </div> -->
      <span slot="footer" class="dialog-footer">
            <el-button @click="issuedReasonVisible=true">不通过</el-button>
            <el-button type="primary" @click="subIssued" :loading="loadingIssued">通 过</el-button>
         </span>
      </el-dialog>
    <el-dialog title="报告批准" :visible.sync="approveVisible" width="22cm" :modal-append-to-body="false" :fullscreen="fullscreen">
      <div class="full-screen">
    <el-dialog title="不通过原因" :visible.sync="issuedReasonVisible" width="400px" :modal-append-to-body="false">
      <div class="search_thing">
        <div class="search_label">不通过原因:</div>
        <div class="search_input"><el-input size="small" placeholder="请输入" clearable
            v-model="reason"></el-input></div>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="issuedReasonVisible=false">取消</el-button>
            <el-button type="primary" @click="handleIssuedReason" :loading="loadingIssuedReason">确定</el-button>
         </span>
      </el-dialog>
    <el-dialog title="报告批准" :visible.sync="approveVisible" width="400px" :modal-append-to-body="false" :fullscreen="fullscreen">
      <!-- <div class="full-screen">
        <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen=true;" v-if="!fullscreen"></i>
        <img src="../../../static/img/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen=false;" >
      </div>
      <div class="btns">
      </div> -->
      <!-- <div class="btns">
        <el-button type="primary" size="small">批准</el-button>
        <el-button size="small">不批准</el-button>
      </div> -->
      <span slot="footer" class="dialog-footer">
            <el-button @click="approveReasonVisible=true">不批准</el-button>
            <el-button type="primary" @click="subApprove" :loading="loadingApprove">批 准</el-button>
         </span>
      </el-dialog>
    <el-dialog title="不批准原因" :visible.sync="approveReasonVisible" width="400px" :modal-append-to-body="false">
      <div class="search_thing">
        <div class="search_label">不批准原因:</div>
        <div class="search_input"><el-input size="small" placeholder="请输入" clearable
            v-model="reason"></el-input></div>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="approveReasonVisible=false">取消</el-button>
            <el-button type="primary" @click="handleApproveReason" :loading="loadingApproveReason">确定</el-button>
         </span>
      </el-dialog>
   </div>
</template>
@@ -146,15 +176,17 @@
          isIndex: true,
          showSelect: false,
          select: false,
          do: [{
            id: 'handleWeave',
            font: '在线编制',
            type: 'text',
            method: 'handleWeave',
            disabFun: (row, index) => {
              return row.isExamine != null
            }
          }, {
          do: [
          //   {
          //   id: 'handleWeave',
          //   font: '在线编制',
          //   type: 'text',
          //   method: 'handleWeave',
          //   disabFun: (row, index) => {
          //     return row.isExamine != null
          //   }
          // },
          {
            id: 'download',
            font: '下载',
            type: 'text',
@@ -179,13 +211,21 @@
            disabFun: (row, index) => {
              return row.isExamine != null
            }
          },{
            id: 'handleSubmit',
            font: '提交',
            type: 'text',
            method: 'handleSubmit',
            disabFun: (row, index) => {
              return row.state != 0
            }
          }, {
            id: 'handleIssued',
            font: '审核',
            type: 'text',
            method: 'handleIssued',
            disabFun: (row, index) => {
              return row.isExamine != null
              return row.state == null||row.state == 0 ||row.isExamine == 1
            }
          }, {
            id: 'handleApprove',
@@ -193,13 +233,13 @@
            type: 'text',
            method: 'handleApprove',
            disabFun: (row, index) => {
              return row.isRatify != null
              return row.state == null||row.state == 0||row.isExamine == 0||row.isExamine == null ||row.isRatify==1
            }
          }],
          linkEvent: {
            code: {
              method: 'selectAllByOne'
            }
            // code: {
            //   method: 'selectAllByOne'
            // }
          },
          tagField: {
            isRatify: {
@@ -223,6 +263,17 @@
                type: 'success',
                label: '通过'
              }]
            },
            state: {
              select: [{
                value: 0,
                type: 'danger',
                label: '待提交'
              }, {
                value: 1,
                type: 'success',
                label: '已提交'
              }]
            }
          },
          selectField: {},
@@ -234,9 +285,17 @@
        statusList: [],
        claimVisible: false,
        issuedVisible: false,
        issuedReasonVisible:false,
        approveVisible: false,
        approveReasonVisible:false,
        fullscreen:false,
        value:``
        loadingApproveReason:false,
        loadingApprove:false,
        loadingIssuedReason:false,
        loadingIssued:false,
        value:``,
        reason:'',
        currentInfo:null,
      }
    },
    mounted() {
@@ -303,8 +362,9 @@
        let edit = false
        let up = false
        let res = false
        let issued = false
        let approve = false
        let sub = false
        let issued = true
        let approve = true
        for (var i = 0; i < power.length; i++) {
          if (power[i].menuMethod == 'upReportFile') {
            edit = true
@@ -315,6 +375,9 @@
          if (power[i].menuMethod == 'upReportUrl') {
            res = true
          }
          if (power[i].menuMethod == 'writeReport') {
            sub = true
          }
        }
        if (!approve) {
          this.componentData.do.splice(5, 1)
@@ -322,18 +385,18 @@
        if (!issued) {
          this.componentData.do.splice(4, 1)
        }
        if (!res) {
        if (!sub) {
          this.componentData.do.splice(3, 1)
        }
        if (!up) {
        if (!res) {
          this.componentData.do.splice(2, 1)
        }
        if (!edit) {
          this.componentData.do.splice(0, 1)
        if (!up) {
          this.componentData.do.splice(1, 1)
        }
      },
      handleClose() {
        this.upLoad = false;
        // if (!edit) {
        //   this.componentData.do.splice(0, 1)
        // }
      },
      confirmClaim() {
        // console.log(this.$refs.Word.getValue())
@@ -359,11 +422,85 @@
            })
      },
      handleIssued(row){
        this.currentInfo = row;
        this.issuedVisible = true;
      },
      subIssued(){
        this.loadingIssued = true;
        this.$axios.post(this.$api.insReport.examineReport, {
                        id: this.currentInfo.id,
                isExamine: 1
          }).then(res => {
            if (res.code === 201) {
              return
            }
            this.$message.success('提交成功')
            this.refreshTable()
            this.loadingIssued = false;
            this.currentInfo = null;
            this.issuedVisible = false;
          }).catch(e => {
            this.$message.error('提交失败')
            this.loadingIssued = false;
          })
      },
      handleApprove(row){
        this.currentInfo = row;
        this.approveVisible = true;
      },
      subApprove(){
        this.loadingApprove = true;
      },
      handleSubmit(row){
        this.$confirm('是否提交当前报告?', "提交", {
                     confirmButtonText: "提交",
                     cancelButtonText: "取消",
                     type: "success"
                  }).then(() => {
                     this.$axios.post(this.$api.insReport.writeReport, {
                        id: row.id
                     }).then(res => {
                        if (res.code === 201) {
                           return
                        }
                        this.$message.success('提交成功')
                        this.refreshTable()
                     }).catch(e => {
                        this.$message.error('提交失败')
                     })
                  }).catch(() => {})
      },
      handleIssuedReason(){
        if(!this.reason){
          return this.$message.error('请输入原因')
        }
        this.loadingIssuedReason = true;
        this.$axios.post(this.$api.insReport.examineReport, {
                        id: this.currentInfo.id,
                isExamine: 0,
                examineTell:this.reason
          }).then(res => {
            if (res.code === 201) {
              return
            }
            this.$message.success('操作成功')
            this.refreshTable()
            this.loadingIssuedReason = false;
            this.currentInfo = null;
            this.reason = '';
            this.issuedVisible = false;
            this.issuedReasonVisible = false;
          }).catch(e => {
            this.$message.error('操作失败')
            this.loadingIssuedReason = false;
          })
      },
      handleApproveReason(){
        if(!this.reason){
          return this.$message.error('请输入原因')
        }
        this.loadingApproveReason = true
      }
    }
  }
</script>