Bladeren bron

审批流程 与审批窗口

qinbai 3 jaren geleden
bovenliggende
commit
177706859c

+ 10 - 0
src/api/check/check.js

@@ -9,3 +9,13 @@ export const auditProcessList = (id) => {
     }
   })
 }
+
+export const cancelCheck = (id) => {
+  return request({
+    url: 'api/blade-check/auditproecess/cancelCheck',
+    method: 'post',
+    params: {
+      id:id
+    }
+  })
+}

+ 105 - 0
src/components/check/check.vue

@@ -0,0 +1,105 @@
+<template>
+  <div>
+    <avue-form class="trading-form" :option="option" ref="form" v-model="form">
+    </avue-form>
+    <div style="margin-left: 69%;padding: 10px">
+      <el-button size="small" @click="$emit('choceCheckFun')">关闭</el-button>
+      <el-button type="warning" size="small" @click="submit(2)">审批驳回</el-button>
+      <el-button type="primary" size="small" @click="submit(1)">审批通过</el-button>
+    </div>
+  </div>
+</template>
+
+<script>
+  import { approvePass } from "@/api/approveData/main";
+
+  export default {
+    name: "check",
+    props: {
+      checkData: {
+        type: Object
+      },
+      choceCheckFun:{
+        type: Function
+      }
+    },
+    data() {
+      return {
+        form: {},
+        list: [],
+        currencyDic: [],
+        corpId: "",
+        option: {
+          emptyBtn: false,
+          submitBtn: false,
+          labelWidth: 120,
+          menuSpan: 8,
+          column: [
+            {
+              label: '审批人',
+              prop: 'auditName',
+              span: 12,
+              disabled:true,
+              rules: [
+                {
+                  required: false,
+                  message: ' ',
+                  trigger: 'blur'
+                }
+              ]
+            },
+            {
+              label: '审批日期',
+              prop: 'auditOpTime',
+              type: "datetime",
+              span: 12,
+              disabled:true,
+              rules: [
+                {
+                  required: false,
+                  message: ' ',
+                  trigger: 'blur'
+                }
+              ]
+            },
+            {
+              label: '审批意见',
+              prop: 'auditMsg',
+              span: 24,
+              rules: [
+                {
+                  required: false,
+                  message: ' ',
+                  trigger: 'blur'
+                }
+              ]
+            }
+          ]
+        },
+      }
+    },
+    created() {
+      let date = new Date();
+      let strDate = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
+      this.$set(this.form,"auditOpTime",strDate)
+      this.$set(this.form,"auditName",this.$store.getters.userInfo.user_name)
+    },
+    methods: {
+      submit(operate){
+        this.checkData.operate =  operate
+        approvePass(this.checkData).then(res=>{
+          if(res.data.success){
+            this.$message.success("操作成功!")
+            this.$emit("choceCheckFun")
+          }
+        })
+      }
+    }
+  }
+</script>
+
+<style  lang="scss" scoped>
+  .trading-form ::v-deep .el-form-item {
+    margin-bottom: 8px !important;
+  }
+</style>

+ 74 - 28
src/components/check/checkSchedule.vue

@@ -1,28 +1,41 @@
 <template>
   <div>
-    <el-row style="height: 0;">
-      <el-col :span="3">
-        <div style="height: 300px;margin-top:90px">
-          <el-steps direction="vertical" :active="1" space="40px">
-            <el-step title="发起"></el-step>
-            <el-step title="审批1"></el-step>
-            <el-step title="审批2"></el-step>
-          </el-steps>
-        </div>
-      </el-col>
-      <el-col :span="16">
-        <avue-crud
-          :option="option"
-          :table-loading="loading"
-          :data="data"
-          ref="crud"
-          @refresh-change="refreshChange"
-          :page.sync="page"
-          @on-load="onLoad"
-        >
-        </avue-crud>
-      </el-col>
-    </el-row>
+    <div style="height: 90%;margin-top:30px;margin-left: 20%">
+      <el-steps direction="vertical"
+                :active="active"
+                space="150px"
+                :finish-status="finish"
+                align-center
+                style="font-size: 12px">
+        <el-step :key="index"
+                 v-for="(item,index) in data"
+                 :title="item.title"
+                 style="font-size: 14px !important;">
+          <template slot="description" scope="scope">
+            <table width="100%" border="0" cellspacing="0" cellpadding="0" style="font-size: 14px">
+              <tr>
+                <td>
+                  <span >{{index === 0?'提交人:':'审批人:'}}&nbsp;&nbsp;&nbsp;</span><span>{{item.auditName}}</span>
+                </td>
+              </tr>
+              <tr>
+                <td>
+                  <span >{{index === 0?'提交日期:':'审批日期:'}}&nbsp;&nbsp;&nbsp;</span><span>{{item.auditOpTime}}</span>
+                </td>
+              </tr>
+              <tr>
+                <td>
+                  <span >备注:&nbsp;&nbsp;&nbsp;</span><span>{{item.auditMsg}}</span>
+                </td>
+              </tr>
+            </table>
+          </template>
+        </el-step>
+      </el-steps>
+      <div style="margin-left: 80%;padding: 10px">
+        <el-button size="small" @click="$emit('choceScheduleFun')">关闭</el-button>
+      </div>
+    </div>
   </div>
 </template>
 
@@ -36,11 +49,16 @@
       checkId: {
         type: String
       },
+      choceScheduleFun:{
+        type: Function
+      }
     },
     data(){
       return {
         loading:false,
         option:option,
+        active:1,
+        finish:"success",
         data:[],
         page: {
           pageSize: 10,
@@ -49,19 +67,47 @@
         },
       }
     },
+    created() {
+      auditProcessList(this.checkId).then(res =>{
+        res.data.data.map((item,index) =>{
+          if(item.auditStatus == "A"){
+            this.active = index + 2
+            item.title = "审批通过"
+          }
+          if(item.auditStatus == "B"){
+            this.finish = "error"
+            item.title = "审批驳回"
+          }
+          if(item.auditStatus == "S" || item.auditStatus == "N"){
+            item.title = "待审批"
+          }
+        })
+
+        let sendObject = {
+          ... res.data.data[0],
+          auditName:res.data.data[0].sendName,
+          auditOpTime:res.data.data[0].sendTime,
+          auditMsg:res.data.data[0].sendMsg,
+          auditStatus:"O",
+          title:"提交",
+        }
+        res.data.data.unshift(sendObject)
+        this.data = res.data.data
+      })
+    },
     methods:{
       refreshChange(){
 
       },
       onLoad(){
-        auditProcessList(this.checkId).then(res =>{
-          console.log(res.data)
-        })
+
       }
     }
   }
 </script>
 
-<style scoped>
-
+<style scoped lang="scss">
+  /*::v-deep .el-step__title{*/
+  /*  font-size: 14px;*/
+  /*}*/
 </style>

+ 15 - 9
src/components/check/config/mainList.json

@@ -18,7 +18,7 @@
   "tree": true,
   "columnBtn": false,
   "border": true,
-  "index": true,
+  "index": false,
   "selection": false,
   "menu": false,
   "menuWidth": 0,
@@ -26,30 +26,36 @@
   "column": [
     {
       "label": "操作人",
-      "prop": "accSysNo",
+      "prop": "auditName",
       "overHidden": true,
-      "width": 150,
+      "width": 180,
       "index": 2
     },
     {
       "label": "操作状态",
-      "prop": "srcBillNo",
+      "prop": "auditStatus",
+      "type": "select",
+      "dicUrl": "/api/blade-system/dict-biz/dictionary?code=auditStatus",
+      "props": {
+        "label": "dictValue",
+        "value": "dictKey"
+      },
       "overHidden": true,
-      "width": 150,
+      "hide": true,
       "index": 2
     },
     {
       "label": "操作日期",
-      "prop": "corpName",
+      "prop": "auditOpTime",
       "overHidden": true,
-      "width": 150,
+      "width": 180,
       "index": 2
     },
     {
       "label": "备注",
-      "prop": "itemName",
+      "prop": "auditMsg",
       "overHidden": true,
-      "width": 150,
+      "width": 426,
       "index": 4
     }
   ]

+ 4 - 1
src/components/fee-info/main.vue

@@ -321,6 +321,9 @@ export default {
     },
     billUrl: {
       type: String
+    },
+    optionType:{
+      type: String
     }
   },
   filters: {
@@ -600,7 +603,7 @@ export default {
             item.srcFeesId = item.id
             item.costType = item.itemId
             item.itemType = '采购'
-            item.optionType = 'JK'
+            item.optionType = this.optionType
             item.srcType = 2   //费用明细申请
           })
           let data = {

+ 1 - 1
src/views/approval/processConfig/index.vue

@@ -28,7 +28,7 @@
             icon="el-icon-plus"
             size="small"
             @click.stop="addHandle"
-          >新增</el-button>
+          >创建单据</el-button>
         </template>
         <template slot-scope="scope" slot="menu">
           <el-button

+ 38 - 0
src/views/approveData/index.vue

@@ -46,6 +46,13 @@
           type="text"
           size="small"
           :disabled="scope.row.auditStatus != 'S'"
+          @click.stop="openCheck(scope.row)"
+        >审批
+        </el-button>
+        <el-button
+          type="text"
+          size="small"
+          :disabled="scope.row.auditStatus != 'S'"
           @click.stop="pass(scope.row, 1)"
         >审批通过
         </el-button>
@@ -58,6 +65,23 @@
         </el-button>
       </template>
     </avue-crud>
+    <el-dialog
+      append-to-body
+      title="审批"
+      class="el-dialogDeep"
+      :visible.sync="checkDialog"
+      width="50%"
+      :close-on-click-modal="false"
+      :destroy-on-close="true"
+      :close-on-press-escape="false"
+      v-dialog-drag
+    >
+      <check
+        :checkData="checkData"
+        @choceCheckFun="choceCheckFun"
+      >
+      </check>
+    </el-dialog>
   </basic-container>
 </template>
 
@@ -65,18 +89,24 @@
   import option from "./configuration/mainList.json";
   import { getList,approvePass } from "@/api/approveData/main";
   import { batchOperation } from "@/api/approveData/main"
+  import check from "@/components/check/check";
   import _ from "lodash";
 
   export default {
+    components:{
+      check
+    },
     data() {
       return {
         loading : false,
         form: {},
         search:{},
         show:true,
+        checkDialog:false,
         detailData:{},
         option: option,
         parentId:0,
+        checkData:{},
         dataList: [],
         selectionList:[],
         page: {
@@ -149,6 +179,14 @@
           this.loading = false
         })
       },
+      openCheck(row){
+        this.checkDialog = true
+        this.checkData = row
+      },
+      choceCheckFun(){
+        this.checkDialog = false;
+        this.refreshChange()
+      },
       //新单打开
       addReceipt(row){
 

+ 45 - 23
src/views/financialManagement/paymentRequest/paymentRequestDetails.vue

@@ -28,7 +28,7 @@
               </el-dropdown-item>
               <el-dropdown-item
                 :disabled="!checkDisabled"
-                @click.native="openApplicationDialog">撤销审核
+                @click.native="cancelAudit">撤销审核
               </el-dropdown-item>
             </el-dropdown-menu>
           </el-dropdown>
@@ -62,16 +62,8 @@
                      class="el-button--small-yh"
                      :loading="buttonLoading"
                      :disabled="buttonDisabled"
-                     @click.stop="approveOperation(1)">
-            审核通过
-          </el-button>
-          <el-button type="warning"
-                     size="small"
-                     class="el-button--small-yh"
-                     :loading="buttonLoading"
-                     :disabled="buttonDisabled"
-                     @click.stop="approveOperation(2)">
-            审核驳回
+                     @click.stop="openCheckDialog">
+            审核
           </el-button>
         </div>
       </div>
@@ -176,7 +168,7 @@
       title="审核进度"
       class="el-dialogDeep"
       :visible.sync="checkScheduleDialog"
-      width="60%"
+      width="40%"
       :close-on-click-modal="false"
       :destroy-on-close="true"
       :close-on-press-escape="false"
@@ -184,9 +176,27 @@
     >
       <check-schedule
         :checkId="checkId"
+        @choceScheduleFun="choceScheduleFun"
       >
       </check-schedule>
     </el-dialog>
+    <el-dialog
+      append-to-body
+      title="审批"
+      class="el-dialogDeep"
+      :visible.sync="checkDialog"
+      width="50%"
+      :close-on-click-modal="false"
+      :destroy-on-close="true"
+      :close-on-press-escape="false"
+      v-dialog-drag
+    >
+      <check
+        :checkData="checkData"
+        @choceCheckFun="choceCheckFun"
+      >
+      </check>
+    </el-dialog>
   </div>
 </template>
 
@@ -197,6 +207,7 @@
   import _ from "lodash";
   import { approvePass } from "@/api/approveData/main"
   import checkSchedule from "../../../components/check/checkSchedule";
+  import { cancelCheck } from "@/api/check/check";
 
   export default {
     name: "paymentDetailsPage",
@@ -212,12 +223,14 @@
       return {
         form:{},
         itemForm: {},
+        checkData:{},
         itemOption: itemOption,
         checkDisabled:false,
         auditDisabled:false,
         buttonDisabled:true,
         buttonLoading:false,
         checkScheduleDialog:false,
+        checkDialog:false,
         checkId:'',
         parentId:0,
         id:"",
@@ -431,22 +444,31 @@
           }
         })
       },
-      //审核操作
-      approveOperation(operate){
-        this.detailData.check.operate = operate
-        this.buttonLoading = true;
-        approvePass(this.detailData.check).then(res=>{
-          this.$message.success("操作成功!")
-
-          //操作成功之后需要 禁用通过驳回吗》‘
-        }).finally(()=>{
-          this.buttonLoading = false
-        })
+      //打开审核
+      openCheckDialog(){
+        this.checkData  = this.detailData.check
+        this.checkDialog = true;
+      },
+      //关闭审核
+      choceCheckFun(){
+        this.checkDialog = false;
       },
       //选择费用
       returnBreak(breakValue){
 
       },
+      //撤销审核
+      cancelAudit(){
+        cancelCheck(this.form.id).then(res =>{
+          if(res.data.success){
+            this.$message.success("操作成功!")
+            this.afterEcho(res.data.data)
+          }
+        })
+      },
+      choceScheduleFun(){
+        this.checkScheduleDialog = false
+      },
       //选择币别 带汇率
       currencyChange(row){
         if(row.currency === "CNY"){

+ 2 - 2
src/views/financialManagement/paymentSettle/paymentSettle.vue

@@ -24,12 +24,12 @@
         <el-button type="primary"
                    size="small"
                    icon="el-icon-plus"
-                   @click="addReceipt">新 单
+                   @click="addReceipt">创建单据
         </el-button>
         <el-button size="small"
                    type="info"
                    @click.stop="openReport()"
-        >导出报表
+        >报表
         </el-button>
       </template>
       <template slot-scope="scope" slot="menu">

+ 1 - 1
src/views/financialManagement/paymentSettle/paymentSettleDetailsPage.vue

@@ -18,7 +18,7 @@
                      type="primary"
                      size="small"
                      @click.stop="saveSettlement"
-          >{{form.id?"确认修改" :"确认新增"}}
+          >保存数据
           </el-button>
         </div>
       </div>

+ 1 - 1
src/views/financialManagement/receiptSettle/receiptSettle.vue

@@ -24,7 +24,7 @@
         <el-button type="primary"
                    size="small"
                    icon="el-icon-plus"
-                   @click="addReceipt">新 单
+                   @click="addReceipt">创建单据
         </el-button>
         <el-button size="small"
                    type="info"

+ 1 - 1
src/views/financialManagement/receiptSettle/receiptSettleDetailsPage.vue

@@ -18,7 +18,7 @@
                      size="small"
                      :disabled="!financeDisabled"
                      @click.stop="saveSettlement"
-          >{{form.id?"确认修改" :"确认新增"}}
+          >保存数据
           </el-button>
         </div>
       </div>

+ 13 - 12
src/views/purchase/contract/detailsPage.vue

@@ -99,14 +99,14 @@
                     :value="data.value"
                   ></el-option>
                 </el-select>
-                <el-input type="age" v-else-if="item.prop === 'orderAmount'" v-model="form[item.prop]" :disabled="item.disabled?true:false || takeDisabled" size="small" autocomplete="off" @input="currencyChange" placeholder="请输入"></el-input>
+                <el-input type="age" v-else-if="item.prop === 'orderAmount'" v-model="form[item.prop]" :disabled="item.disabled?true:false || takeDisabled" size="small" autocomplete="off" @input="RMBChange" placeholder="请输入"></el-input>
                 <selectComponent v-else-if="item.prop === 'corpId'" v-model="form[item.prop]" :disabled="item.disabled?true:false || takeDisabled" :configuration="configuration"/>
                 <selectComponent v-else-if="item.prop === 'purchaserId'" v-model="form[item.prop]" :disabled="item.disabled?true:false || takeDisabled" :configuration="pConfiguration"/>
                 <selectComponent v-else-if="item.prop === 'belongToCorpId'" v-model="form[item.prop]" :disabled="item.disabled?true:false || takeDisabled" :configuration="bConfiguration"/>
                 <el-select v-else-if="item.prop === 'orderType'"  style="width: 100%"  v-model="form[item.prop]" :disabled="item.disabled?true:false || takeDisabled" size="small" placeholder="请选择" clearable filterable>
                   <el-option v-for="(item,index) in contractTypeDic" :key="index" :label="item.dictValue" :value="item.dictValue"></el-option>
                 </el-select>
-                <el-select v-else-if="item.prop === 'currency'" style="width: 100%"  :disabled="item.disabled?true:false || takeDisabled"  v-model="form[item.prop]" size="small" placeholder="请选择" @change="currencyChange('true')" clearable filterable>
+                <el-select v-else-if="item.prop === 'currency'" style="width: 100%"  :disabled="item.disabled?true:false || takeDisabled"  v-model="form[item.prop]" size="small" placeholder="请选择" @change="currencyChange" clearable filterable>
                   <el-option v-for="(item,index) in currencyDic" :key="index" :label="item.dictValue"  :value="item.dictValue"></el-option>
                 </el-select>
                 <el-select v-else-if="item.prop === 'paymentType'"  style="width: 100%"  v-model="form[item.prop]" size="small" placeholder="请选择" clearable filterable>
@@ -118,7 +118,7 @@
                     <el-option v-for="(item,index) in currencyDic" :key="index" :label="item.dictValue"  :value="item.dictValue"></el-option>
                   </el-select>
                 </div>
-                <el-input type="age" v-else-if="item.prop === 'exchangeRate'" v-model="form[item.prop]"  :disabled="item.disabled?true:false || takeDisabled" size="small" autocomplete="off"  @change="currencyChange" placeholder="请输入">
+                <el-input type="age" v-else-if="item.prop === 'exchangeRate'" v-model="form[item.prop]"  :disabled="item.disabled?true:false || takeDisabled" size="small" autocomplete="off"  @change="RMBChange" placeholder="请输入">
                 </el-input>
                 <el-input type="textarea" v-else-if="(item.prop === 'orderRemark')" v-model="form[item.prop]"   size="small" autocomplete="off" placeholder="请输入"></el-input>
                 <el-input type="age" v-else v-model="form[item.prop]" :disabled="item.disabled?true:false || takeDisabled" size="small" autocomplete="off" placeholder="请输入"></el-input>
@@ -297,6 +297,7 @@
         <upload-file
           ref="uploadFile"
           title="合同附件"
+          :optionType="'JK'"
           :disabled="viewDisabled"
           :orderFilesList="orderFilesList"
           delUrl=""
@@ -836,16 +837,15 @@ export default {
       }
     },
     //带出人民币
-    currencyChange(type){
-      if(type === "true"){
-        if(this.form.currency === "CNY"){  //如果为人民币
-          this.$set(this.form,"exchangeRate",1)
-        }else if(this.form.currency === "USD"){
-          this.$set(this.form,"exchangeRate",6.3686)
-        }else{
-          this.$set(this.form,"exchangeRate",7.1749)
+    currencyChange(value){
+      this.currencyDic.forEach(item =>{
+        if(item.dictValue === value){
+          this.$set(this.form,"exchangeRate",item.remark)
         }
-      }
+      })
+    },
+    //计算人民币金额
+    RMBChange(value){
       if(this.form.orderAmount && this.form.orderAmount){
         this.$set(this.form,"rmbAmount",_.multiply(this.form.orderAmount, this.form.exchangeRate).toFixed(2))
       }
@@ -879,6 +879,7 @@ export default {
     beforeFinance(feesData,callback){
       this.orderFeesList = feesData;
       let params = {}
+      //暂时默认通过  之后优化
       params.valid = true
       params.parentId = this.form.id
       params.srcOrderno = this.form.orderNo