瀏覽代碼

Merge branch 'dev' of http://git.echepei.com/caojunjie/Smart_platform_ui into dev

QuKatie 3 年之前
父節點
當前提交
34a7049e46

+ 54 - 0
src/api/standAlone/handoverSheet.js

@@ -0,0 +1,54 @@
+import request from '@/router/axios';
+
+// 列表查询
+export function getList(params) {
+  return request({
+    url: '/api/trade-project/handover/list',
+    method: 'get',
+    params
+  })
+}
+// 列表删除
+export function deleteList(data) {
+  return request({
+    url: '/api/trade-project/handover/remove',
+    method: 'post',
+    params: {
+      ids:data
+    }
+  })
+}
+// 详情
+export function dataDetail(data) {
+  return request({
+    url: '/api/trade-project/handover/detail',
+    method: 'get',
+    params: data
+  })
+}
+// 保存&&修改
+export function typeSave(data) {
+  return request({
+    url: '/api/trade-project/handover/save',
+    method: 'post',
+    data
+  })
+}
+// 明细删除
+export function removeGoods(data) {
+  return request({
+    url: '/api/trade-project/handoveritem/remove',
+    method: 'post',
+    params: {
+      ids: data
+    }
+  })
+}
+// 请核
+export function pleaseCheck(data) {
+  return request({
+    url: '/api/trade-project/handover/check',
+    method: 'post',
+    data: data
+  })
+}

+ 54 - 0
src/api/standAlone/reimbursement.js

@@ -0,0 +1,54 @@
+import request from '@/router/axios';
+
+// 列表查询
+export function getList(params) {
+  return request({
+    url: '/api/trade-purchase/claim/list',
+    method: 'get',
+    params
+  })
+}
+// 列表删除
+export function deleteList(data) {
+  return request({
+    url: '/api/trade-purchase/claim/remove',
+    method: 'post',
+    params: {
+      ids:data
+    }
+  })
+}
+// 详情
+export function dataDetail(data) {
+  return request({
+    url: '/api/trade-purchase/claim/detail',
+    method: 'get',
+    params: data
+  })
+}
+// 保存&&修改
+export function typeSave(data) {
+  return request({
+    url: '/api/trade-purchase/claim/save',
+    method: 'post',
+    data
+  })
+}
+// 明细删除
+export function removeGoods(data) {
+  return request({
+    url: '/api/trade-purchase/claimitem/remove',
+    method: 'post',
+    params: {
+      ids: data
+    }
+  })
+}
+// 请核
+export function pleaseCheck(data) {
+  return request({
+    url: '/api/trade-purchase/claim/check',
+    method: 'post',
+    data: data
+  })
+}

+ 1 - 1
src/api/standAlone/saleLeads.js

@@ -37,7 +37,7 @@ export function typeSave(data) {
 // 明细删除
 export function removeGoods(data) {
   return request({
-    url: '/api/trade-purchase/office-order-item/remove',
+    url: '/api/trade-purchase/leads-item/remove',
     method: 'post',
     params: {
       ids: data

+ 15 - 0
src/router/views/index.js

@@ -1289,4 +1289,19 @@ export default [{
       component: () => import( /* webpackChunkName: "views" */ '@/views/reimbursement/index')
     }]
   },
+  //交接单
+  {
+    path: '/workManagement/handoverSheet/index',
+    component: Layout,
+    hidden: true,
+    children: [{
+      path: '/workManagement/handoverSheet/index',
+      name: '交接单',
+      meta: {
+        i18n: '/workManagement/handoverSheet/index',
+        keepAlive: true,
+      },
+      component: () => import( /* webpackChunkName: "views" */ '@/views/workManagement/handoverSheet/index')
+    }]
+  },
 ]

+ 6 - 2
src/views/approveData/configuration/mainList.json

@@ -51,8 +51,12 @@
           "value": "办公用品采购审批"
         },
         {
-          "label": "办公用品领用审批",
-          "value": "办公用品领用审批"
+          "label": "费用报销审批",
+          "value": "费用报销审批"
+        },
+        {
+          "label": "交接单审批",
+          "value": "交接单审批"
         }
       ],
       "search": true,

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

@@ -33,6 +33,8 @@
         <span v-else-if="scope.row.checkType == 'hqgz'">后勤工资审批</span>
         <span v-else-if="scope.row.checkType == 'ocg'">办公用品采购审批</span>
         <span v-else-if="scope.row.checkType == 'oly'">办公用品领用审批</span>
+        <span v-else-if="scope.row.checkType == 'fybx'">费用报销审批</span>
+        <span v-else-if="scope.row.checkType == 'jjd'">交接单审批</span>
       </template>
       <template slot="menuLeft">
         <el-button

+ 1 - 1
src/views/businessManagement/salesOrder/configuration/customerContact.json

@@ -141,7 +141,7 @@
       ]
     },{
       "label": "供应商",
-      "prop": "corpId",
+      "prop": "corpName",
       "index": 5,
       "width":250,
       "cell": false,

+ 22 - 23
src/views/businessManagement/salesOrder/detailsPageEdit.vue

@@ -261,17 +261,17 @@
               <span class="order_number">序号</span>
               <el-button class="number_button" type="primary" icon="el-icon-circle-plus-outline" circle size="mini" @click="$refs.crudContact.rowCellAdd()"></el-button>
             </template>
-            <template slot="corpId" slot-scope="{ row, index }">
-              <crop-select
-                v-if="row.$cellEdit"
-                v-model="row.corpId"
-                :cropIndex="index"
-                corpType="GYS"
-                @getCorpData="getcorpId"
-                :disabled="detailData.seeDisabled || browse"
-              ></crop-select>
-              <span v-else>{{ row.corpName }}</span>
-            </template>
+<!--            <template slot="corpId" slot-scope="{ row, index }">-->
+<!--              <crop-select-->
+<!--                v-if="row.$cellEdit"-->
+<!--                v-model="row.corpId"-->
+<!--                :cropIndex="index"-->
+<!--                corpType="GYS"-->
+<!--                @getCorpData="getcorpId"-->
+<!--                :disabled="detailData.seeDisabled || browse"-->
+<!--              ></crop-select>-->
+<!--              <span v-else>{{ row.corpName }}</span>-->
+<!--            </template>-->
             <template slot="code" slot-scope="{row,index}">
               <el-button
                 type="text"
@@ -334,15 +334,15 @@
               ></el-input>
               <span v-else>{{ row.orderQuantity | IntegerFormat }}</span>
             </template>
-            <template slot="cname" slot-scope="{ row }">
-              <goods-select v-if="row.$cellEdit" v-model="row.cname" @getRow="getGoodsRow($event, row)"
-                               :configuration="goodsConfiguration" @receiveList="receiveGoodList" @returnRow="getRow($event, row)"
-                            :artsVision="form.belongToCorpId"
-              />
-              <span v-else>
-                {{row.cname}}
-              </span>
-            </template>
+<!--            <template slot="cname" slot-scope="{ row }">-->
+<!--              <goods-select v-if="row.$cellEdit" v-model="row.cname" @getRow="getGoodsRow($event, row)"-->
+<!--                               :configuration="goodsConfiguration" @receiveList="receiveGoodList" @returnRow="getRow($event, row)"-->
+<!--                            :artsVision="form.belongToCorpId"-->
+<!--              />-->
+<!--              <span v-else>-->
+<!--                {{row.cname}}-->
+<!--              </span>-->
+<!--            </template>-->
             <template slot="shopQuality" slot-scope="{ row, index }">
               <el-switch
                 v-model="row.shopQuality"
@@ -366,7 +366,6 @@
                 type="text"
                 @click="rowDel(row, index)"
                 :disabled="detailData.seeDisabled || browse"
-                v-if="!row.$cellEdit"
               >删 除</el-button>
             </template>
             <template slot="menuLeft" slot-scope="{size}">
@@ -2341,7 +2340,7 @@ export default {
           // this.goodsListSave[item].priceCategory = this.goodsListSave[item].goodsTypeName
           delete this.goodsListSave[item].goodsTypeName
           this.goodsListSave[item].itemId = this.goodsListSave[item].id
-          // this.$set(this.goodsListSave[item], 'corpName', this.goodsListSave[item].cname)
+          this.$set(this.goodsListSave[item], 'corpName', this.goodsListSave[item].corpName)
           this.$set(this.goodsListSave[item], 'itemType', this.goodsListSave[item].typeno)
           this.$set(this.goodsListSave[item], 'orderQuantity', 1)
           this.$set(this.goodsListSave[item], 'actualQuantity', 0)
@@ -2404,7 +2403,7 @@ export default {
           this.tableData[item].storageQuantity =  res.data.data
           delete this.tableData[item].goodsTypeName
           this.tableData[item].itemId = this.tableData[item].id
-          // this.$set(this.tableData[item], 'corpName', this.tableData[item].cname)
+          this.$set(this.tableData[item], 'corpName', this.tableData[item].corpName)
           this.$set(this.tableData[item], 'itemType', this.tableData[item].typeno)
           this.$set(this.tableData[item], 'orderQuantity', 1)
           this.$set(this.tableData[item], 'actualQuantity', 0)

+ 5 - 5
src/views/reimbursement/config/customerContact.json

@@ -17,28 +17,28 @@
   "column": [
     {
       "label": "日期",
-      "prop": "date",
+      "prop": "expenseDate",
       "index": 1,
       "width": 200,
       "overHidden": true
     },
     {
       "label": "费用项目",
-      "prop": "feeName",
+      "prop": "expenseId",
       "index": 2,
-      "width": 120,
+      "width": 200,
       "overHidden": true
     },
     {
       "label": "摘要说明",
-      "prop": "content",
+      "prop": "explanation",
       "index": 3,
       "width": 200,
       "overHidden": true
     },
     {
       "label": "单据张数",
-      "prop": "num",
+      "prop": "quantity",
       "index": 4,
       "width": 120,
       "overHidden": true

+ 5 - 12
src/views/reimbursement/config/mainList.json

@@ -21,7 +21,7 @@
   "column": [
     {
       "label": "日期",
-      "prop": "b",
+      "prop": "claimDate",
       "type": "date",
       "overHidden": true,
       "minWidth": 200,
@@ -32,22 +32,22 @@
       "search": true
     },
     {
-      "label": "创建人",
-      "prop": "createUser",
+      "label": "报销人",
+      "prop": "userName",
       "overHidden": true,
       "minWidth": 120,
       "search": true
     },
     {
       "label": "No.",
-      "prop": "sysNo",
+      "prop": "serialNo",
       "overHidden": true,
       "minWidth": 120,
       "search": true
     },
     {
       "label": "所属部门",
-      "prop": "dept",
+      "prop": "deptName",
       "overHidden": true,
       "minWidth": 120,
       "search": false
@@ -58,13 +58,6 @@
       "overHidden": true,
       "minWidth": 120,
       "search": false
-    },
-    {
-      "label": "审核人",
-      "prop": "sysNo",
-      "overHidden": true,
-      "minWidth": 120,
-      "search": false
     }
   ]
 }

+ 248 - 47
src/views/reimbursement/detail.vue

@@ -16,8 +16,31 @@
           size="small"
           class="el-button--small-yh"
           @click.stop="openEdit"
+          v-if="disabled"
         >编 辑</el-button>
         <el-button
+          v-if="checker && form.status != 3"
+          type="primary"
+          size="small"
+          class="el-button--small-yh"
+          @click.stop="openCheckDialog">
+          审批
+        </el-button>
+        <el-button
+          v-if="form.status > 0"
+          @click.native="checkScheduleDialog = true,checkId=form.id"
+          type="primary"
+          size="small"
+        >审核进度</el-button>
+        <el-button
+          type="primary"
+          v-if="!checkDisabled"
+          :disabled="!form.id || disabled"
+          size="small"
+          @click="pleaseCheck"
+          :loading="btnLoading"
+        >请核</el-button>
+        <el-button
           type="success"
           :disabled="!form.id"
           size="small"
@@ -41,32 +64,37 @@
           v-model="form"
           :option="option"
         >
-          <template slot="createUser">
+          <template slot="userId">
             <el-select
-              v-model="form.createUser"
+              v-model="form.userId"
               filterable
               clearable
               size="small"
               placeholder="请选择"
+              @change="userHandle"
+              @clear="form.userName == null"
+              :disabled="disabled || checkDisabled"
             >
               <el-option
                 v-for="(item,index) in userList"
                 :key="index"
                 :label="item.realName"
-                :value="item.realName"
+                :value="item.id"
               ></el-option>
             </el-select>
           </template>
-          <template slot="dept">
+          <template slot="deptId">
             <avue-input-tree
               leaf-only
               style="width: 100%;"
               size="small"
               :props="{ label: 'title' }"
-              v-model="form.dept"
+              v-model="form.deptId"
               placeholder=" "
               type="tree"
               :dic="dic"
+              :nodeClick="deptClick"
+              :disabled="disabled || checkDisabled"
             ></avue-input-tree>
           </template>
           <template slot="postId">
@@ -74,9 +102,10 @@
               v-model="form.postId"
               clearable
               filterable
-              multiple
-              collapse-tags
               placeholder="请选择 岗位"
+              @change="postHandle"
+              @clear="form.postId == null"
+              :disabled="disabled || checkDisabled"
             >
               <el-option
                 v-for="(item, index) in postDic"
@@ -104,6 +133,7 @@
               icon="el-icon-plus"
               size="small"
               @click.stop="newDetails"
+              :disabled="disabled || checkDisabled"
             >录入明细</el-button>
             <el-button
               type="info"
@@ -117,55 +147,59 @@
               icon="el-icon-edit"
               type="text"
               @click="rowCell(row, index)"
+              :disabled="disabled || checkDisabled"
             >{{ row.$cellEdit ? "保存" : "修改" }}</el-button>
             <el-button
               size="small"
               icon="el-icon-delete"
               type="text"
               @click="rowDel(row, index)"
+              :disabled="disabled || checkDisabled"
             >删除</el-button>
           </template>
-          <template slot="date" slot-scope="{ row, index }">
+          <template slot="expenseDate" slot-scope="{ row, index }">
             <el-date-picker
               v-if="row.$cellEdit"
-              v-model="row.date"
+              v-model="row.expenseDate"
               type="date"
               placeholder="选择日期"
               size="small"
               style="width: 100%"
+              format="yyyy-MM-dd"
+              valueFormat="yyyy-MM-dd"
             ></el-date-picker>
-            <span v-else>{{row.date}}</span>
+            <span v-else>{{row.expenseDate}}</span>
           </template>
-          <template slot="feeName" slot-scope="{ row }">
+          <template slot="expenseId" slot-scope="{ row }">
             <breakdown-select
               v-if="row.$cellEdit"
-              v-model="row.itemId"
+              v-model="row.expenseId"
               @selectValue="value => selectValue(value, row)"
               :configuration="breakConfiguration"
             >
             </breakdown-select>
-            <span v-else>{{ row.feeName }}</span>
+            <span v-else>{{ row.expenseItem }}</span>
           </template>
-          <template slot="content" slot-scope="{ row, index }">
+          <template slot="explanation" slot-scope="{ row, index }">
             <el-input
               v-if="row.$cellEdit"
-              v-model="row.content"
+              v-model="row.explanation"
               size="small"
               placeholder="输入内容"
             />
-            <span v-else>{{row.content}}</span>
+            <span v-else>{{row.explanation}}</span>
           </template>
-          <template slot="num" slot-scope="{ row, index }">
+          <template slot="quantity" slot-scope="{ row, index }">
             <el-input-number
               v-if="row.$cellEdit"
-              v-model="row.num"
+              v-model="row.quantity"
               size="small"
               :controls="false"
               :precision="0"
               style="width: 100%"
               placeholder="单据张数"
             ></el-input-number>
-            <span v-else>{{ row.num }}</span>
+            <span v-else>{{ row.quantity }}</span>
           </template>
           <template slot="amount" slot-scope="{ row, index }">
             <el-input-number
@@ -182,6 +216,44 @@
         </avue-crud>
       </basic-container>
     </div>
+
+    <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"
+        :checkDetail="false"
+        :idList="[]"
+        @choceCheckFun="choceCheckFun"
+      >
+      </check>
+    </el-dialog>
+    <el-dialog
+      append-to-body
+      title="审批进度"
+      class="el-dialogDeep"
+      :visible.sync="checkScheduleDialog"
+      width="40%"
+      :close-on-click-modal="false"
+      :destroy-on-close="true"
+      :close-on-press-escape="false"
+      v-dialog-drag
+    >
+      <check-schedule
+        :checkId="checkId"
+        :batchNo="batchNo"
+        @choceScheduleFun="choceScheduleFun"
+      >
+      </check-schedule>
+    </el-dialog>
   </div>
 </template>
 
@@ -198,11 +270,25 @@ import {getUserInfo} from "@/api/system/user";
 import {getDeptTree} from "@/api/system/dept";
 import { getCurrentDate } from "@/util/date";
 import {getList as getPostList} from "@/api/system/post";
+import {dataDetail, typeSave, removeGoods, pleaseCheck} from "@/api/standAlone/reimbursement";
+import { contrastObj, contrastList } from "@/util/contrastData";
+import check from "@/components/check/check";
+import checkSchedule from "@/components/check/checkSchedule";
 
 export default {
   name: "detail",
+  props: {
+    detailData: {
+      type: Object
+    }
+  },
+  components: {
+    check,
+    checkSchedule,
+  },
   data() {
     return {
+      disabled: false,
       pageLoading: false,
       btnLoading: false,
       form: {},
@@ -212,7 +298,7 @@ export default {
         column: [
           {
             label: "日期",
-            prop: "b",
+            prop: "claimDate",
             span: 8,
             type: "date",
             format: "yyyy-MM-dd",
@@ -226,8 +312,8 @@ export default {
             ]
           },
           {
-            label: "创建人",
-            prop: "createUser",
+            label: "报销人",
+            prop: "userId",
             rules: [
               {
                 required: true,
@@ -240,7 +326,7 @@ export default {
           },
           {
             label: "所属部门",
-            prop: "dept",
+            prop: "deptId",
             rules: [
               {
                 required: true,
@@ -266,7 +352,7 @@ export default {
           },
           {
             label: "职位",
-            prop: "bb",
+            prop: "position",
             rules: [
               {
                 required: true,
@@ -279,13 +365,14 @@ export default {
           },
           {
             label: "No.",
-            prop: "sysNo",
+            prop: "serialNo",
             span: 8,
             slot: true,
+            disabled: true,
           },
           {
             label: "备注",
-            prop: "orderRemark",
+            prop: "remarks",
             type: "textarea",
             minRows: 2,
             span: 24,
@@ -316,10 +403,19 @@ export default {
         placeholder: "请点击右边按钮选择",
         dicData: []
       },
+      oldForm: {},
+      oldDataList: [],
+      checkDisabled: false, // 审核状态
+      checker: false,
+      checkId: '',
+      batchNo:'',
+      checkDialog: false,
+      checkScheduleDialog: false,
+      checkData: {},
     }
   },
   async created() {
-    this.$set(this.form, 'b', getCurrentDate()); // 默认当前日期
+    this.$set(this.form, 'claimDate', getCurrentDate()); // 默认当前日期
     this.tableOption = await this.getColumnData(
       this.getColumnName(107),
       tableOption
@@ -328,9 +424,12 @@ export default {
       this.userList = res.data.data;
     });
     getUserInfo().then(res => {
-      this.$set(this.form, 'createUser', res.data.data.realName);
-      this.$set(this.form, 'dept', res.data.data.deptId);
-      this.$set(this.form, 'postId', res.data.data.postId.split(','));
+      this.$set(this.form, 'userId', res.data.data.id);
+      this.$set(this.form, 'userName', res.data.data.realName);
+      this.$set(this.form, 'deptId', res.data.data.deptId);
+      this.$set(this.form, 'deptName', res.data.data.deptName);
+      this.$set(this.form, 'postId', res.data.data.postId.split(',')[0]);
+      this.$set(this.form, 'postName', res.data.data.postName.split(',')[0]);
       this.loginUser = res.data.data.realName;
     })
     getDeptTree().then(res => {
@@ -351,6 +450,17 @@ export default {
     this.getWorkDicts('unit').then(res => {
       this.unitOption = res.data.data;
     })
+    if (this.detailData.query) {
+      this.disabled = true;
+      this.option.column.map(e => {
+        this.$set(e, 'disabled', true)
+      })
+      this.queryData(this.detailData.id);
+    } else if (this.detailData.auditId) {
+      this.checker = true;
+      this.batchNo = this.detailData.check.batchNo
+      this.queryData(this.detailData.id);
+    }
   },
   filters: {
     IntegerFormat(num) {
@@ -361,12 +471,42 @@ export default {
     }
   },
   methods: {
+    // 查询
+    queryData(id) {
+      this.pageLoading = true;
+      dataDetail({id: id}).then(res => {
+        this.form = res.data.data;
+        this.dataList = this.form.itemList? this.form.itemList: [];
+        this.oldForm = {...this.form};
+        this.oldDataList = [...this.dataList];
+        delete this.form.itemList;
+        this.checkDisabled = this.form.status > 0? true: false;
+        if (this.form.status > 0) {
+          this.option.column.map(e => {
+            this.$set(e, 'disabled', true)
+          })
+        }
+      }).finally(() => {
+        this.pageLoading = false;
+      })
+    },
     //返回列表
     backToList() {
       this.$emit("goBack");
     },
     // 编辑按钮触发
-    openEdit() {},
+    openEdit() {
+      this.disabled = false;
+      this.option.column.map(e => {
+        if (this.checkDisabled) {
+          this.$set(e, 'disabled', true)
+        } else {
+          if (e.prop != 'serialNo') {
+            this.$set(e, 'disabled', false)
+          }
+        }
+      })
+    },
     // 复制
     copyDoc() {
       this.$emit("copyOrder", this.form.id);
@@ -376,13 +516,14 @@ export default {
       this.$refs["form"].validate((valid, done) => {
         done();
         if (valid) {
-          // this.btnLoading = true;
-          // typeSave(this.form).then(res => {
-          //   this.$message({type: "success", message: this.form.id ? "修改成功!" : "新增成功!"});
-          //   this.queryData(res.data.data.id);
-          // }).finally(() => {
-          //   this.btnLoading = false;
-          // })
+          this.$set(this.form, 'itemList', this.dataList)
+          this.btnLoading = true;
+          typeSave(this.form).then(res => {
+            this.$message({type: "success", message: this.form.id ? "修改成功!" : "新增成功!"});
+            this.queryData(res.data.data);
+          }).finally(() => {
+            this.btnLoading = false;
+          })
         } else {
           return false
         }
@@ -447,13 +588,13 @@ export default {
         type: "warning"
       }).then(() => {
         if (row.id) {
-          // removeGoods(row.id).then(res => {
-          //   this.$message({
-          //     type: 'success',
-          //     message: '删除成功!'
-          //   })
-          //   this.dataList.splice(row.$index, 1);
-          // })
+          removeGoods(row.id).then(res => {
+            this.$message({
+              type: 'success',
+              message: '删除成功!'
+            })
+            this.dataList.splice(row.$index, 1);
+          })
         } else {
           this.$message({
             type: "success",
@@ -466,8 +607,68 @@ export default {
     getKHData(row) {},
     //选择费用
     selectValue(value, row) {
-      this.$set(row, "feeName", value.cname);
-      this.$set(row, "ename", value.ename);
+      console.log(value)
+      this.$set(row, "expenseItem", value.cname);
+    },
+    userHandle() {
+      this.form.userName = this.userList.find(item => item.id == this.form.userId).realName;
+    },
+    postHandle() {
+      this.form.postName = this.postDic.find(item => item.id == this.form.postId).postName;
+    },
+    // 验证新旧值对比
+    verification() {
+      if (contrastObj(this.form, this.oldForm) ||
+        contrastList(this.dataList, this.oldDataList)) {
+        this.$confirm("数据发生变化未有提交记录, 是否提交?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.editCustomer();
+        }).catch(() => {
+          return false;   //取消改动数据
+        })
+      } else {
+        return true;
+      }
+    },
+    deptClick(data) {
+      this.$set(this.form, 'deptName', data.title)
+    },
+    //打开审核
+    openCheckDialog(){
+      this.checkData  = this.detailData.check
+      this.checkDialog = true;
+    },
+    //关闭审核
+    choceCheckFun(){
+      this.checkDialog = false;
+    },
+    choceScheduleFun(){
+      this.checkScheduleDialog = false
+    },
+    // 请核
+    pleaseCheck() {
+      if (this.verification()) {
+        const data = {
+          id : this.form.id,
+          checkType: 'fybx',
+          url: '/reimbursement/index',
+          pageStatus:"this.$store.getters.reimbursementStatus",
+          pageLabel:"报销",
+          checkFlag: 1,
+        }
+        this.btnLoading = true;
+        pleaseCheck(data).then(res => {
+          this.$message.success('请核成功')
+          this.queryData(this.form.id)
+        }).catch(() => {
+          this.$message.error('请核失败')
+        }).finally(() => {
+          this.btnLoading = false;
+        })
+      }
     },
   },
 }

+ 45 - 21
src/views/reimbursement/index.vue

@@ -51,12 +51,12 @@
             corpType="KH"
           ></crop-select>
         </template>
-        <template slot="createUserSearch">
+        <template slot="userNameSearch">
           <el-select
-            v-model="search.createUser"
+            v-model="search.userId"
             filterable
             clearable
-            placeholder="请选择 承揽人"
+            placeholder="请选择 报销人"
           >
             <el-option
               v-for="(item, index) in userOption"
@@ -66,6 +66,12 @@
             ></el-option>
           </el-select>
         </template>
+        <template slot-scope="scope" slot="userName">
+          <span style="color: #409EFF;cursor: pointer" @click.stop="beforeOpenPage(scope.row,scope.index)">{{ scope.row.userName }}</span>
+        </template>
+        <template slot="serialNo" slot-scope="scope">
+          <span style="color: #409EFF;cursor: pointer" @click.stop="beforeOpenPage(scope.row,scope.index)">{{ scope.row.serialNo }}</span>
+        </template>
       </avue-crud>
     </basic-container>
     <detail-page
@@ -81,6 +87,7 @@
 import option from "./config/mainList.json";
 import detailPage from "./detail";
 import { gainUser } from "@/api/basicData/customerInquiry";
+import {getList, deleteList} from "@/api/standAlone/reimbursement";
 
 export default {
   name: "index",
@@ -111,6 +118,15 @@ export default {
     gainUser().then(res => {
       this.userOption = res.data.data;
     })
+    let i = 0;
+    this.option.column.forEach(item => {
+      if (item.search) i++
+    })
+    if (i % 3 !== 0){
+      const num = 3 - Number(i % 3)
+      this.option.searchMenuSpan = num * 8;
+      this.option.searchMenuPosition = "right";
+    }
   },
   activated() {
     if (this.$route.query.check) {
@@ -126,12 +142,12 @@ export default {
   },
   methods: {
     searchCriteriaSwitch(type) {
-      // if (type){
-      //   this.option.height =  this.option.height - 90
-      // }else {
-      //   this.option.height =  this.option.height + 90
-      // }
-      // this.$refs.crud.getTableHeight()
+      if (type){
+        this.option.height =  this.option.height - 90
+      }else {
+        this.option.height =  this.option.height + 90
+      }
+      this.$refs.crud.getTableHeight()
     },
     newAdd() {
       this.show = false;
@@ -146,17 +162,25 @@ export default {
         size: page.pageSize,
         current: page.currentPage,
       })
-      // this.loading = true;
-      // getSalesList(queryParams).then(res => {
-      //   this.dataList = res.data.data.records;
-      //   this.page.total = res.data.data.total;
-      //   this.option.height = window.innerHeight - 240;
-      //   this.$nextTick(() => {
-      //     this.$refs.crud.doLayout()
-      //   })
-      // }).finally(() => {
-      //   this.loading = false;
-      // })
+      if (queryParams.claimDate && queryParams.claimDate.length > 0) {
+        queryParams = {
+          ...queryParams,
+          beginClaimDate: queryParams.claimDate[0] + ' 00:00:00',
+          endClaimDate: queryParams.claimDate[1] + ' 23:59:59',
+        }
+      }
+      delete queryParams.claimDate;
+      this.loading = true;
+      getList(queryParams).then(res => {
+        this.dataList = res.data.data.records;
+        this.page.total = res.data.data.total;
+        this.option.height = window.innerHeight - 240;
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout()
+        })
+      }).finally(() => {
+        this.loading = false;
+      })
     },
     async saveColumn() {
       const inSave = await this.saveColumnData(
@@ -243,7 +267,7 @@ export default {
         cancelButtonText: "取消",
         type: "warning"
       }).then(res => {
-        // return deleteList(row.id)
+        return deleteList(row.id)
       }).then(() => {
         this.dataList.splice(row.$index, 1)
         this.$message({

+ 27 - 7
src/views/saleLeads/detail.vue

@@ -187,6 +187,7 @@ import {getUserInfo} from "@/api/system/user";
 import {getDeptTree} from "@/api/system/dept";
 import { getCurrentDate } from "@/util/date";
 import {dataDetail, typeSave, removeGoods, pleaseCheck} from "@/api/standAlone/saleLeads";
+import { contrastObj, contrastList } from "@/util/contrastData";
 
 export default {
   name: "detail",
@@ -356,6 +357,8 @@ export default {
       dic: [],
       loginUser: '', // 登录人
       loginUserId: null,
+      oldForm: {},
+      oldDataList: [],
     }
   },
   async created() {
@@ -518,13 +521,13 @@ export default {
         type: "warning"
       }).then(() => {
         if (row.id) {
-          // removeGoods(row.id).then(res => {
-          //   this.$message({
-          //     type: 'success',
-          //     message: '删除成功!'
-          //   })
-          //   this.dataList.splice(row.$index, 1);
-          // })
+          removeGoods(row.id).then(res => {
+            this.$message({
+              type: 'success',
+              message: '删除成功!'
+            })
+            this.dataList.splice(row.$index, 1);
+          })
         } else {
           this.$message({
             type: "success",
@@ -535,6 +538,23 @@ export default {
       });
     },
     getKHData(row) {},
+    // 验证新旧值对比
+    verification() {
+      if (contrastObj(this.form, this.oldForm) ||
+        contrastList(this.dataList, this.oldDataList)) {
+        this.$confirm("数据发生变化未有提交记录, 是否提交?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.editCustomer();
+        }).catch(() => {
+          return false;   //取消改动数据
+        })
+      } else {
+        return true;
+      }
+    },
   },
 }
 </script>

+ 23 - 6
src/views/saleLeads/index.vue

@@ -132,15 +132,24 @@ export default {
       this.contractorOption = res.data.data;
       this.oppositePersonOption = res.data.data;
     })
+    let i = 0;
+    this.option.column.forEach(item => {
+      if (item.search) i++
+    })
+    if (i % 3 !== 0){
+      const num = 3 - Number(i % 3)
+      this.option.searchMenuSpan = num * 8;
+      this.option.searchMenuPosition = "right";
+    }
   },
   methods: {
     searchCriteriaSwitch(type) {
-      // if (type){
-      //   this.option.height =  this.option.height - 90
-      // }else {
-      //   this.option.height =  this.option.height + 90
-      // }
-      // this.$refs.crud.getTableHeight()
+      if (type){
+        this.option.height =  this.option.height - 90
+      }else {
+        this.option.height =  this.option.height + 90
+      }
+      this.$refs.crud.getTableHeight()
     },
     newAdd() {
       this.show = false;
@@ -154,6 +163,14 @@ export default {
         size: page.pageSize,
         current: page.currentPage,
       })
+      if (queryParams.bizDate && queryParams.bizDate.length > 0) {
+        queryParams = {
+          ...queryParams,
+          beginBizDate: queryParams.bizDate[0] + ' 00:00:00',
+          endBizDate: queryParams.bizDate[1] + ' 23:59:59',
+        }
+      }
+      delete queryParams.bizDate;
       this.loading = true;
       getList(queryParams).then(res => {
         this.dataList = res.data.data.records;

+ 4 - 6
src/views/workManagement/handoverSheet/config/customerContact.json

@@ -17,7 +17,7 @@
   "column": [
     {
       "label": "证件、票据(种类)名称",
-      "prop": "cname",
+      "prop": "name",
       "index": 1,
       "width": 200,
       "cell": true,
@@ -25,18 +25,16 @@
     },
     {
       "label": "数量",
-      "prop": "num",
+      "prop": "quantity",
       "index": 2,
-      "width": 200,
-      "cell": true,
+      "width": 140,
       "overHidden": true
     },
     {
       "label": "金额",
       "prop": "amount",
       "index": 3,
-      "width": 120,
-      "cell": true,
+      "width": 140,
       "overHidden": true
     },
     {

+ 3 - 3
src/views/workManagement/handoverSheet/config/mainList.json

@@ -21,7 +21,7 @@
   "column": [
     {
       "label": "NO.",
-      "prop": "sysNo",
+      "prop": "serialNo",
       "search": true,
       "index": 1,
       "minWidth": 80,
@@ -36,8 +36,8 @@
       "overHidden": true
     },
     {
-      "label": "业务日期",
-      "prop": "b",
+      "label": "交接日期",
+      "prop": "handoverDate",
       "type": "date",
       "overHidden": true,
       "minWidth": 200,

+ 228 - 55
src/views/workManagement/handoverSheet/detail.vue

@@ -16,8 +16,31 @@
           size="small"
           class="el-button--small-yh"
           @click.stop="openEdit"
+          v-if="disabled"
         >编 辑</el-button>
         <el-button
+          v-if="checker && form.status != 3"
+          type="primary"
+          size="small"
+          class="el-button--small-yh"
+          @click.stop="openCheckDialog">
+          审批
+        </el-button>
+        <el-button
+          v-if="form.status > 0"
+          @click.native="checkScheduleDialog = true,checkId=form.id"
+          type="primary"
+          size="small"
+        >审核进度</el-button>
+        <el-button
+          type="primary"
+          v-if="!checkDisabled"
+          :disabled="!form.id || disabled"
+          size="small"
+          @click="pleaseCheck"
+          :loading="btnLoading"
+        >请核</el-button>
+        <el-button
           type="success"
           :disabled="!form.id"
           size="small"
@@ -46,38 +69,9 @@
               v-model="form.corpId"
               @getCorpData="getKHData"
               corpType="KH"
+              :disabled="disabled || checkDisabled"
             />
           </template>
-          <template slot="createUser">
-            <el-select
-              v-model="form.createUser"
-              filterable
-              clearable
-              size="small"
-            >
-              <el-option
-                v-for="(item,index) in userList"
-                :key="index"
-                :label="item.realName"
-                :value="item.realName"
-              ></el-option>
-            </el-select>
-          </template>
-          <template slot="oppositePerson">
-            <el-select
-              v-model="form.oppositePerson"
-              filterable
-              clearable
-              size="small"
-            >
-              <el-option
-                v-for="(item,index) in userList"
-                :key="index"
-                :label="item.realName"
-                :value="item.realName"
-              ></el-option>
-            </el-select>
-          </template>
         </avue-form>
       </basic-container>
       <containerTitle title="详情内容"/>
@@ -96,6 +90,7 @@
               icon="el-icon-plus"
               size="small"
               @click.stop="newDetails"
+              :disabled="disabled || checkDisabled"
             >录入明细</el-button>
             <el-button
               type="info"
@@ -109,17 +104,81 @@
               icon="el-icon-edit"
               type="text"
               @click="rowCell(row, index)"
+              :disabled="disabled || checkDisabled"
             >{{ row.$cellEdit ? "保存" : "修改" }}</el-button>
             <el-button
               size="small"
               icon="el-icon-delete"
               type="text"
               @click="rowDel(row, index)"
+              :disabled="disabled || checkDisabled"
             >删除</el-button>
           </template>
+          <template slot="quantity" slot-scope="{ row, index }">
+            <el-input-number
+              v-if="row.$cellEdit"
+              v-model="row.quantity"
+              size="small"
+              :controls="false"
+              :precision="0"
+              style="width: 100%"
+              placeholder="数量"
+            ></el-input-number>
+            <span v-else>{{ row.quantity }}</span>
+          </template>
+          <template slot="amount" slot-scope="{ row, index }">
+            <el-input-number
+              v-if="row.$cellEdit"
+              v-model="row.amount"
+              size="small"
+              :controls="false"
+              :precision="2"
+              style="width: 100%"
+              placeholder="金额"
+            ></el-input-number>
+            <span v-else>{{ row.amount }}</span>
+          </template>
         </avue-crud>
       </basic-container>
     </div>
+
+    <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"
+        :checkDetail="false"
+        :idList="[]"
+        @choceCheckFun="choceCheckFun"
+      >
+      </check>
+    </el-dialog>
+    <el-dialog
+      append-to-body
+      title="审批进度"
+      class="el-dialogDeep"
+      :visible.sync="checkScheduleDialog"
+      width="40%"
+      :close-on-click-modal="false"
+      :destroy-on-close="true"
+      :close-on-press-escape="false"
+      v-dialog-drag
+    >
+      <check-schedule
+        :checkId="checkId"
+        :batchNo="batchNo"
+        @choceScheduleFun="choceScheduleFun"
+      >
+      </check-schedule>
+    </el-dialog>
   </div>
 </template>
 
@@ -135,11 +194,25 @@ import { gainUser } from "@/api/basicData/customerInquiry";
 import {getUserInfo} from "@/api/system/user";
 import {getDeptTree} from "@/api/system/dept";
 import { getCurrentDate } from "@/util/date";
+import { contrastObj, contrastList } from "@/util/contrastData";
+import check from "@/components/check/check";
+import checkSchedule from "@/components/check/checkSchedule";
+import {dataDetail, typeSave, removeGoods, pleaseCheck} from "@/api/standAlone/handoverSheet";
 
 export default {
   name: "detail",
+  props: {
+    detailData: {
+      type: Object
+    }
+  },
+  components: {
+    check,
+    checkSchedule,
+  },
   data() {
     return {
+      disabled: false,
       pageLoading: false,
       btnLoading: false,
       form: {},
@@ -162,7 +235,7 @@ export default {
           },
           {
             label: "交接日期",
-            prop: "b",
+            prop: "handoverDate",
             span: 8,
             type: "date",
             format: "yyyy-MM-dd",
@@ -177,13 +250,13 @@ export default {
           },
           {
             label: "NO.",
-            prop: "sysNo",
+            prop: "serialNo",
             disabled:true,
             span: 8,
           },
           {
             label: "交接人",
-            prop: "handoverPerson",
+            prop: "handoverUserName",
             span: 8,
           },
           {
@@ -193,7 +266,7 @@ export default {
           },
           {
             label: "交接备注",
-            prop: "orderRemark",
+            prop: "remarks",
             type: "textarea",
             minRows: 2,
             span: 24,
@@ -213,10 +286,19 @@ export default {
       userList: [],
       dic: [],
       loginUser: '', // 登录人
+      oldForm: {},
+      oldDataList: [],
+      checkDisabled: false, // 审核状态
+      checker: false,
+      checkId: '',
+      batchNo:'',
+      checkDialog: false,
+      checkScheduleDialog: false,
+      checkData: {},
     }
   },
   async created() {
-    this.$set(this.form, 'b', getCurrentDate()); // 默认当前日期
+    this.$set(this.form, 'handoverDate', getCurrentDate()); // 默认当前日期
     this.tableOption = await this.getColumnData(
       this.getColumnName(104),
       tableOption
@@ -225,8 +307,6 @@ export default {
       this.userList = res.data.data;
     });
     getUserInfo().then(res => {
-      this.$set(this.form, 'createUser', res.data.data.realName);
-      this.$set(this.form, 'oppositePerson', res.data.data.realName);
       this.loginUser = res.data.data.realName;
     })
     getDeptTree().then(res => {
@@ -235,6 +315,17 @@ export default {
     this.getWorkDicts('unit').then(res => {
       this.unitOption = res.data.data;
     })
+    if (this.detailData.query) {
+      this.disabled = true;
+      this.option.column.map(e => {
+        this.$set(e, 'disabled', true)
+      })
+      this.queryData(this.detailData.id);
+    } else if (this.detailData.auditId) {
+      this.checker = true;
+      this.batchNo = this.detailData.check.batchNo
+      this.queryData(this.detailData.id);
+    }
   },
   filters: {
     IntegerFormat(num) {
@@ -245,12 +336,42 @@ export default {
     }
   },
   methods: {
+    // 查询
+    queryData(id) {
+      this.pageLoading = true;
+      dataDetail({id: id}).then(res => {
+        this.form = res.data.data;
+        this.dataList = this.form.itemList? this.form.itemList: [];
+        this.oldForm = {...this.form};
+        this.oldDataList = [...this.dataList];
+        delete this.form.itemList;
+        this.checkDisabled = this.form.status > 0? true: false;
+        if (this.form.status > 0) {
+          this.option.column.map(e => {
+            this.$set(e, 'disabled', true)
+          })
+        }
+      }).finally(() => {
+        this.pageLoading = false;
+      })
+    },
     //返回列表
     backToList() {
       this.$emit("goBack");
     },
     // 编辑按钮触发
-    openEdit() {},
+    openEdit() {
+      this.disabled = false;
+      this.option.column.map(e => {
+        if (this.checkDisabled) {
+          this.$set(e, 'disabled', true)
+        } else {
+          if (e.prop != 'serialNo') {
+            this.$set(e, 'disabled', false)
+          }
+        }
+      })
+    },
     // 复制
     copyDoc() {
       this.$emit("copyOrder", this.form.id);
@@ -260,13 +381,14 @@ export default {
       this.$refs["form"].validate((valid, done) => {
         done();
         if (valid) {
-          // this.btnLoading = true;
-          // typeSave(this.form).then(res => {
-          //   this.$message({type: "success", message: this.form.id ? "修改成功!" : "新增成功!"});
-          //   this.queryData(res.data.data.id);
-          // }).finally(() => {
-          //   this.btnLoading = false;
-          // })
+          this.$set(this.form, 'itemList', this.dataList)
+          this.btnLoading = true;
+          typeSave(this.form).then(res => {
+            this.$message({type: "success", message: this.form.id ? "修改成功!" : "新增成功!"});
+            this.queryData(res.data.data);
+          }).finally(() => {
+            this.btnLoading = false;
+          })
         } else {
           return false
         }
@@ -312,8 +434,6 @@ export default {
         done()
         if (valid) {
           this.dataList.push({
-            createTime: getCurrentDate('date'),
-            createUser: this.loginUser,
             $cellEdit: true,
           })
         }
@@ -333,13 +453,13 @@ export default {
         type: "warning"
       }).then(() => {
         if (row.id) {
-          // removeGoods(row.id).then(res => {
-          //   this.$message({
-          //     type: 'success',
-          //     message: '删除成功!'
-          //   })
-          //   this.dataList.splice(row.$index, 1);
-          // })
+          removeGoods(row.id).then(res => {
+            this.$message({
+              type: 'success',
+              message: '删除成功!'
+            })
+            this.dataList.splice(row.$index, 1);
+          })
         } else {
           this.$message({
             type: "success",
@@ -349,7 +469,60 @@ export default {
         }
       });
     },
-    getKHData(row) {},
+    getKHData(row) {
+      this.$set(this.form, 'corpName', row.cname)
+    },
+    // 验证新旧值对比
+    verification() {
+      if (contrastObj(this.form, this.oldForm) ||
+        contrastList(this.dataList, this.oldDataList)) {
+        this.$confirm("数据发生变化未有提交记录, 是否提交?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.editCustomer();
+        }).catch(() => {
+          return false;   //取消改动数据
+        })
+      } else {
+        return true;
+      }
+    },
+    //打开审核
+    openCheckDialog(){
+      this.checkData  = this.detailData.check
+      this.checkDialog = true;
+    },
+    //关闭审核
+    choceCheckFun(){
+      this.checkDialog = false;
+    },
+    choceScheduleFun(){
+      this.checkScheduleDialog = false
+    },
+    // 请核
+    pleaseCheck() {
+      if (this.verification()) {
+        const data = {
+          id : this.form.id,
+          checkType: 'jjd',
+          url: '/workManagement/handoverSheet/index',
+          pageStatus:"this.$store.getters.handOverStatus",
+          pageLabel:"交接单",
+          checkFlag: 1,
+        }
+        this.btnLoading = true;
+        pleaseCheck(data).then(res => {
+          this.$message.success('请核成功')
+          this.queryData(this.form.id)
+        }).catch(() => {
+          this.$message.error('请核失败')
+        }).finally(() => {
+          this.btnLoading = false;
+        })
+      }
+    },
   },
 }
 </script>

+ 29 - 32
src/views/workManagement/handoverSheet/index.vue

@@ -51,20 +51,8 @@
             corpType="KH"
           ></crop-select>
         </template>
-        <template slot="createUserSearch">
-          <el-select
-            v-model="search.createUser"
-            filterable
-            clearable
-            placeholder="请选择 承揽人"
-          >
-            <el-option
-              v-for="(item, index) in userOption"
-              :key="index"
-              :value="item.realName"
-              :label="item.realName"
-            ></el-option>
-          </el-select>
+        <template slot="serialNo" slot-scope="scope">
+          <span style="color: #409EFF;cursor: pointer" @click.stop="beforeOpenPage(scope.row,scope.index)">{{ scope.row.serialNo }}</span>
         </template>
       </avue-crud>
     </basic-container>
@@ -81,6 +69,7 @@
 import option from "./config/mainList.json";
 import detailPage from "./detail";
 import { gainUser } from "@/api/basicData/customerInquiry";
+import {getList, deleteList} from "@/api/standAlone/handoverSheet";
 
 export default {
   name: "index",
@@ -126,12 +115,12 @@ export default {
   },
   methods: {
     searchCriteriaSwitch(type) {
-      // if (type){
-      //   this.option.height =  this.option.height - 90
-      // }else {
-      //   this.option.height =  this.option.height + 90
-      // }
-      // this.$refs.crud.getTableHeight()
+      if (type){
+        this.option.height =  this.option.height - 90
+      }else {
+        this.option.height =  this.option.height + 90
+      }
+      this.$refs.crud.getTableHeight()
     },
     newAdd() {
       this.show = false;
@@ -146,17 +135,25 @@ export default {
         size: page.pageSize,
         current: page.currentPage,
       })
-      // this.loading = true;
-      // getSalesList(queryParams).then(res => {
-      //   this.dataList = res.data.data.records;
-      //   this.page.total = res.data.data.total;
-      //   this.option.height = window.innerHeight - 240;
-      //   this.$nextTick(() => {
-      //     this.$refs.crud.doLayout()
-      //   })
-      // }).finally(() => {
-      //   this.loading = false;
-      // })
+      if (queryParams.handoverDate && queryParams.handoverDate.length > 0) {
+        queryParams = {
+          ...queryParams,
+          beginHandoverDate: queryParams.handoverDate[0] + ' 00:00:00',
+          endHandoverDate: queryParams.handoverDate[1] + ' 23:59:59',
+        }
+      }
+      delete queryParams.handoverDate;
+      this.loading = true;
+      getList(queryParams).then(res => {
+        this.dataList = res.data.data.records;
+        this.page.total = res.data.data.total;
+        this.option.height = window.innerHeight - 240;
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout()
+        })
+      }).finally(() => {
+        this.loading = false;
+      })
     },
     async saveColumn() {
       const inSave = await this.saveColumnData(
@@ -243,7 +240,7 @@ export default {
         cancelButtonText: "取消",
         type: "warning"
       }).then(res => {
-        // return deleteList(row.id)
+        return deleteList(row.id)
       }).then(() => {
         this.dataList.splice(row.$index, 1)
         this.$message({

+ 3 - 1
src/views/workManagement/purchaseApply/detail.vue

@@ -623,7 +623,9 @@ export default {
         if (this.checkDisabled) {
           this.$set(e, 'disabled', true)
         } else {
-          this.$set(e, 'disabled', false)
+          if (e.prop != 'sysNo') {
+            this.$set(e, 'disabled', false)
+          }
         }
       })
     },

+ 3 - 1
src/views/workManagement/requisition/detail.vue

@@ -633,7 +633,9 @@ export default {
         if (this.checkDisabled) {
           this.$set(e, 'disabled', true)
         } else {
-          this.$set(e, 'disabled', false)
+          if (e.prop != 'sysNo') {
+            this.$set(e, 'disabled', false)
+          }
         }
       })
     },

+ 4 - 2
src/views/workManagement/warehousing/detail.vue

@@ -599,10 +599,12 @@ export default {
     openEdit() {
       this.disabled = false;
       this.option.column.map(e => {
-        if (this.confirmDisabled) {
+        if (this.checkDisabled) {
           this.$set(e, 'disabled', true)
         } else {
-          this.$set(e, 'disabled', false)
+          if (e.prop != 'sysNo') {
+            this.$set(e, 'disabled', false)
+          }
         }
       })
     },