Explorar o código

事务管理页面大部分功能

qinbai %!s(int64=4) %!d(string=hai) anos
pai
achega
7c3baef8df

+ 0 - 8
src/api/basicData/commodityType.js

@@ -138,11 +138,3 @@ export const getDeptTree = (tenantId) => {
         }
     })
 }
-//服务项目树
-export function getServerTree(data) {
-  return request({
-    url: '/api/blade-client/corpstype/page',
-    method: 'get',
-    params: data
-  })
-}

+ 59 - 0
src/api/workManagement/serviceProject.js

@@ -0,0 +1,59 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params, goodsTypeId) => {
+  return request({
+    url: '/api/blade-client/affairsdesc/list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+      goodsTypeId,
+    }
+  })
+}
+
+export const remove = (id) => {
+  return request({
+    url: '/api/blade-client/affairsdesc/update',
+    method: 'post',
+    data: {
+      id:id
+    }
+  })
+}
+
+export function detail(data) {
+  return request({
+    url: '/api/blade-client/affairsdesc/detail?id='+data,
+    method: 'get',
+  })
+}
+
+export const submit = (row) => {
+  return request({
+    url: '/api/blade-client/affairsdesc/submit',
+    method: 'post',
+    data: row
+  })
+}
+
+export const getServiceTypeTree = (parentId) => {
+  return request({
+    url: '/api/blade-client/affairstype/lazy-tree',
+    method: 'get',
+    params: {
+      parentId
+    }
+  })
+}
+
+export const getDeptTree = (tenantId) => {
+  return request({
+    url: '/api/blade-client/affairstype/tree',
+    method: 'get',
+    params: {
+      tenantId,
+    }
+  })
+}

+ 35 - 0
src/api/workManagement/serviceType.js

@@ -0,0 +1,35 @@
+import request from '@/router/axios';
+
+//服务类别列表查询
+export function getList(data) {
+  return request({
+    url: '/api/blade-client/affairstype/page',
+    method: 'get',
+    params: data
+  })
+}
+//服务类别列表修改和新增
+export function typeSave(data) {
+  return request({
+    url: '/api/blade-client/affairstype/submit',
+    method: 'post',
+    data: data
+  })
+}
+//服务类别列表查看明细
+export function detail(data) {
+  return request({
+    url: '/api/blade-client/affairstype/detail?id='+data,
+    method: 'get'
+  })
+}
+//删除
+export function deleteDetails(data) {
+  return request({
+    url: '/api/blade-client/affairstype/update',
+    method: 'post',
+    data: {
+      id:data
+    }
+  })
+}

+ 6 - 6
src/router/views/index.js

@@ -327,7 +327,7 @@ export default [{
       }
     ]
   },
-  // 结算修改页
+  // 任务修改页
   {
     path: '/task_editPages',
     component: Layout,
@@ -342,18 +342,18 @@ export default [{
       }
     ]
   },
-  // 任务修改
+  // 结算详情
   {
-    path: '/settleAccounts_editPages',
+    path: '/settleAccounts_detailsPage',
     component: Layout,
     hidden: true,
     children: [
       {
-        path: '/settleAccounts_editPages',
+        path: '/settleAccounts_detailsPage',
         meta: {
-          i18n: 'settleAccounts_editPages'
+          i18n: 'settleAccounts_detailsPage'
         },
-        component: () => import( /* webpackChunkName: "views" */ '@/views/workManagement/receipt/settleAccountsEdit')
+        component: () => import( /* webpackChunkName: "views" */ '@/views/workManagement/receipt/settleAccountsDetailsPage')
       }
     ]
   },

+ 7 - 1
src/views/workManagement/main-items/configuration/detailsPage.json

@@ -10,7 +10,7 @@
   "selection": false,
   "addBtn": false,
   "viewBtn": false,
-  "editBtn": true,
+  "editBtn": false,
   "delBtn": true,
   "menuWidth": 220,
   "column": [
@@ -32,6 +32,7 @@
       "prop": "prop2",
       "index": 2,
       "width": 100,
+      "cell": true,
       "rules": [
         {
           "required": true,
@@ -45,6 +46,7 @@
       "prop": "prop3",
       "index": 3,
       "width": 100,
+      "cell": true,
       "rules": [
         {
           "required": true,
@@ -71,6 +73,7 @@
       "prop": "prop5",
       "index": 5,
       "width": 100,
+      "cell": true,
       "rules": [
         {
           "required": true,
@@ -84,6 +87,7 @@
       "prop": "prop6",
       "index": 6,
       "width": 100,
+      "cell": true,
       "rules": [
         {
           "required": true,
@@ -97,6 +101,7 @@
       "prop": "prop7",
       "index": 7,
       "width": 100,
+      "cell": true,
       "rules": [
         {
           "required": true,
@@ -110,6 +115,7 @@
       "prop": "prop8",
       "index": 8,
       "width": 100,
+      "cell": true,
       "rules": [
         {
           "required": true,

+ 13 - 10
src/views/workManagement/main-items/detailsPage.vue

@@ -8,6 +8,7 @@
       </div>
     </div>
     <div style="margin-top: 60px">
+      <containerTitle title="基础信息"></containerTitle>
       <basic-container>
         <el-form :model="form" ref="form" label-width="130px">
           <el-row>
@@ -26,6 +27,7 @@
           </el-row>
         </el-form>
       </basic-container>
+      <containerTitle title="明细列表"></containerTitle>
       <basic-container>
         <avue-crud
           ref="crud"
@@ -34,7 +36,6 @@
           :page.sync="page"
           :table-loading="loading"
           @row-del="rowDel"
-          @row-update="rowUpdate"
           @row-save="rowSave"
           @size-change="sizeChange"
           @current-change="currentChange"
@@ -44,7 +45,6 @@
           @on-load="getList"
           @saveColumn="saveColumn"
         >
-          <!--修改 直接在列表编辑-->
           <template slot="menuLeft">
             <el-button type="success"
                        size="small"
@@ -67,7 +67,7 @@
                        size="small"
                        icon="el-icon-plus"
                        plain
-                       @click="">新 
+                       @click="">新 
             </el-button>
             <el-button type="info"
                        size="small"
@@ -75,6 +75,13 @@
                        @click="">请 核
             </el-button>
           </template>
+          <template slot-scope="{row,index}"  slot="menu">
+            <el-button
+              type="text"
+              size="small"
+              @click="rowCellTwo(row,index)"
+            >{{row.$cellEdit?'保存':'修改'}}</el-button>
+          </template>
         </avue-crud>
       </basic-container>
     </div>
@@ -293,13 +300,9 @@
           done(row);
         });
       },
-      //修改时的修改按钮点击触发
-      rowUpdate(row, index, done, loading) {
-        setTimeout(() => {
-          this.$message.success("修改成功");
-          loading();
-          done();
-        }, 1000);
+      //点击修改或保存时触发
+      rowCellTwo(row,index){
+        this.$refs.crud.rowCell(row, index)
       },
       //新增修改时保存触发
       rowSave(row, done, loading) {

+ 16 - 1
src/views/workManagement/main-items/list.vue

@@ -6,6 +6,7 @@
       :option="optionTable"
       :page.sync="page"
       :table-loading="loading"
+      :before-open="beforeOpen"
       @row-del="rowDel"
       @row-update="rowUpdate"
       @row-save="rowSave"
@@ -28,7 +29,7 @@
                    size="small"
                    icon="el-icon-plus"
                    plain
-                   @click="">新 单
+                   @click="addMainItems">新 单
         </el-button>
       </template>
     <template slot-scope="scope" slot="menu">
@@ -205,6 +206,20 @@ export default {
         this.page.total = 1;
       }, 1000);
     },
+    //新单打开
+    addMainItems(){
+      this.$router.push({
+        path: "/mainItems_detailsPage",
+        query: {id: ''},
+      });
+    },
+    //编辑打开
+    beforeOpen(row, index){
+      this.$router.push({
+        path: "/mainItems_detailsPage",
+        query: {id: JSON.stringify(row.prop1)},
+      });
+    },
     searchChange(params, done) {
       this.getList(this.page, params);
       done();

+ 48 - 192
src/views/workManagement/receipt/configuration/settleAccounts.json

@@ -1,4 +1,5 @@
 {
+  "addBtn": false,
   "headerAlign": "center",
   "align": "center",
   "border": true,
@@ -9,244 +10,99 @@
   "searchMenuSpan": 6,
   "tree": true,
   "selection": true,
+  "editBtn": true,
   "viewBtn": false,
-  "editBtn": false,
-  "delBtn": false,
+  "delBtn": true,
   "menuWidth": 220,
   "column": [
     {
-      "label": "服务项目",
-      "prop": "fwxm",
+      "label": "项目编码",
+      "prop": "prop1",
+      "search": true,
       "index": 1,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入服务项目",
-          "trigger": "blur"
-        }
-      ]
+      "width": 100
     },
     {
-      "label": "收费建议",
-      "prop": "sfjy",
+      "label": "项目名称",
+      "prop": "prop2",
+      "search": true,
       "index": 2,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入收费建议",
-          "trigger": "blur"
-        }
-      ]
+      "width": 100
     },
     {
-      "label": "计价单位",
-      "prop": "jjdw",
+      "label": "客户名称",
+      "prop": "prop3",
+      "search": true,
       "index": 3,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入计价单位",
-          "trigger": "blur"
-        }
-      ]
+      "width": 100
     },
     {
-      "label": "数量",
-      "prop": "sl",
+      "label": "应收金额",
+      "prop": "prop4",
       "index": 4,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入数量",
-          "trigger": "blur"
-        }
-      ]
+      "width": 100
     },
     {
-      "label": "报价",
-      "prop": "bj",
+      "label": "实收金额",
+      "prop": "prop5",
       "index": 5,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入报价",
-          "trigger": "blur"
-        }
-      ]
+      "width": 100
     },
     {
-      "label": "合计金额",
-      "prop": "hejijin",
+      "label": "责任人",
+      "prop": "prop6",
+      "search": true,
       "index": 6,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入合计金额",
-          "trigger": "blur"
-        }
-      ]
+      "width": 100
     },
     {
-      "label": "确认收费",
-      "prop": "querenshou",
+      "label": "系统编号",
+      "prop": "prop7",
       "index": 7,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入确认收费",
-          "trigger": "blur"
-        }
-      ]
+      "width": 100
     },
     {
-      "label": "频率",
-      "prop": "pinlv",
+      "label": "电话",
+      "prop": "prop8",
       "index": 8,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入频率",
-          "trigger": "blur"
-        }
-      ]
+      "width": 100
     },
     {
-      "label": "提醒日",
-      "prop": "tixingri",
+      "label": "状态",
+      "prop": "prop9",
       "index": 9,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入提醒日",
-          "trigger": "blur"
-        }
-      ]
+      "width": 100
     },
     {
       "label": "备注",
-      "prop": "beizhu",
+      "prop": "prop10",
+      "search": true,
       "index": 10,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入备注",
-          "trigger": "blur"
-        }
-      ]
-    },
-    {
-      "label": "任务部门",
-      "prop": "renwubu",
-      "index": 11,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入任务部门",
-          "trigger": "blur"
-        }
-      ]
-    },
-    {
-      "label": "承做人",
-      "prop": "cnegzuoren",
-      "index": 12,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入承做人",
-          "trigger": "blur"
-        }
-      ]
-    },
-    {
-      "label": "开始日期",
-      "prop": "cname",
-      "index": 13,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入开始日期",
-          "trigger": "blur"
-        }
-      ]
-    },
-    {
-      "label": "要求完成日期",
-      "prop": "cname",
-      "index": 14,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入要求完成日期",
-          "trigger": "blur"
-        }
-      ]
+      "width": 100
     },
     {
       "label": "录入人",
-      "prop": "cname",
-      "index": 14,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入录入人",
-          "trigger": "blur"
-        }
-      ]
+      "prop": "prop11",
+      "index": 11,
+      "width": 100
     },
     {
       "label": "录入时间",
-      "prop": "cname",
-      "index": 14,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入录入时间",
-          "trigger": "blur"
-        }
-      ]
+      "prop": "prop12",
+      "index": 12,
+      "width": 100
     },
     {
       "label": "最新修改人",
-      "prop": "cname",
-      "index": 14,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入最新修改人",
-          "trigger": "blur"
-        }
-      ]
+      "prop": "prop13",
+      "index": 13,
+      "width": 100
     },
     {
       "label": "最新修改时间",
-      "prop": "cname",
+      "prop": "prop14",
       "index": 14,
-      "width": 100,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入最新修改时间",
-          "trigger": "blur"
-        }
-      ]
+      "width": 100
     }
   ]
 }

+ 257 - 0
src/views/workManagement/receipt/configuration/settleAccountsDetailsPage.json

@@ -0,0 +1,257 @@
+{
+  "headerAlign": "center",
+  "align": "center",
+  "border": true,
+  "index": true,
+  "lazy": true,
+  "tip": false,
+  "searchShow": true,
+  "searchMenuSpan": 6,
+  "tree": true,
+  "selection": true,
+  "viewBtn": false,
+  "editBtn": false,
+  "delBtn": false,
+  "menuWidth": 220,
+  "column": [
+    {
+      "label": "服务项目",
+      "prop": "fwxm",
+      "index": 1,
+      "width": 100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入服务项目",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "收费建议",
+      "prop": "sfjy",
+      "index": 2,
+      "width": 100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入收费建议",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "计价单位",
+      "prop": "jjdw",
+      "index": 3,
+      "width": 100,
+      "cell": true,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入计价单位",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "数量",
+      "prop": "sl",
+      "index": 4,
+      "width": 100,
+      "cell": true,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入数量",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "报价",
+      "prop": "bj",
+      "index": 5,
+      "width": 100,
+      "cell": true,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入报价",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "合计金额",
+      "prop": "hejijin",
+      "index": 6,
+      "width": 100,
+      "cell": true,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入合计金额",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "确认收费",
+      "prop": "querenshou",
+      "index": 7,
+      "width": 100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入确认收费",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "频率",
+      "prop": "pinlv",
+      "index": 8,
+      "width": 100,
+      "cell": true,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入频率",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "提醒日",
+      "prop": "tixingri",
+      "index": 9,
+      "width": 100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入提醒日",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "备注",
+      "prop": "beizhu",
+      "index": 10,
+      "width": 100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入备注",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "任务部门",
+      "prop": "renwubu",
+      "index": 11,
+      "width": 100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入任务部门",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "承做人",
+      "prop": "cnegzuoren",
+      "index": 12,
+      "width": 100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入承做人",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "开始日期",
+      "prop": "cname",
+      "index": 13,
+      "width": 100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入开始日期",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "要求完成日期",
+      "prop": "cname",
+      "index": 14,
+      "width": 100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入要求完成日期",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "录入人",
+      "prop": "cname",
+      "index": 14,
+      "width": 100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入录入人",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "录入时间",
+      "prop": "cname",
+      "index": 14,
+      "width": 100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入录入时间",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "最新修改人",
+      "prop": "cname",
+      "index": 14,
+      "width": 100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入最新修改人",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "最新修改时间",
+      "prop": "cname",
+      "index": 14,
+      "width": 100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入最新修改时间",
+          "trigger": "blur"
+        }
+      ]
+    }
+  ]
+}

+ 104 - 296
src/views/workManagement/receipt/settleAccounts.vue

@@ -1,241 +1,124 @@
 <template>
-  <div>
-    <basic-container >
-      <el-form :model="form" ref="form" label-width="130px">
-        <el-row>
-          <el-col v-for="(item, index) in basicData.column" :span="item.span?item.span:8" :key="index">
-            <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
-              <el-date-picker v-if="item.type === 'datetime'" style="width: 100%;" v-model="form[item.prop]" size="small" type="datetime" placeholder="选择日期" value-format="yyyy-MM-dd HH:mm:ss"/>
-              <el-select v-else-if="item.type === 'select'" style="width: 100%" size="small" placeholder="请选择" clearable filterable></el-select>
-              <el-input type="age" v-else v-model="form[item.prop]" size="small" autocomplete="off" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-    </basic-container>
-    <basic-container>
-      <avue-crud :option="option"
-                 :data="dataList"
-                 ref="crud"
-                 v-model="form"
-                 :page.sync="page"
-                 :before-open="beforeOpen"
-                 @row-del="rowDel"
-                 @search-change="searchChange"
-                 @search-reset="searchReset"
-                 @selection-change="selectionChange"
-                 @current-change="currentChange"
-                 @size-change="sizeChange"
-                 @refresh-change="refreshChange"
-                 @on-load="onLoad">
-        <template slot="menuLeft">
-          <el-button type="primary"
-                     size="small"
-                     icon="el-icon-arrow-right"
-                     plain
-                     @click="">导 出
-          </el-button>
-          <el-button type="primary"
-                     size="small"
-                     plain
-                     @click="">打 印
-          </el-button>
-          <el-button type="info"
-                     size="small"
-                     plain
-                     @click="">请 核
-          </el-button>
-        </template>
-        <template slot-scope="{row}" slot="querenshou">
-          <el-button type="primary"  size="small" @click="">结 算</el-button>
-        </template>
-        <template slot-scope="scope" slot="menu">
-          <el-button
-            type="text"
-            icon="el-icon-view"
-            size="small"
-            @click.stop="beforeOpenPage(scope.row,scope.index)"
-          >查看
-          </el-button>
-          <el-button
-            type="text"
-            icon="el-icon-edit"
-            size="small"
-            @click.stop="editOpen(scope.row,scope.index)"
-          >编辑
-          </el-button>
-          <el-button
-            type="text"
-            icon="el-icon-edit"
-            size="small"
-            @click.stop="rowDel(scope.row,scope.index)"
-          >移除
-          </el-button>
-        </template>
-      </avue-crud>
-    </basic-container>
-  </div>
+  <basic-container>
+    <avue-crud
+      ref="crud"
+      :data="data"
+      :option="option"
+      :page.sync="page"
+      :table-loading="loading"
+      :before-open="beforeOpen"
+      @row-del="rowDel"
+      @size-change="sizeChange"
+      @current-change="currentChange"
+      @search-change="searchChange"
+      @refresh-change="refreshChange"
+      @cell-dblclick="cellDblclick"
+      @on-load="getList"
+      @saveColumn="saveColumn"
+    >
+      <template slot-scope="{row,index}" slot="menuLeft">
+        <el-button type="primary"
+                   size="small"
+                   icon="el-icon-arrow-right"
+                   plain
+                   @click="">导 出
+        </el-button>
+        <el-button type="success"
+                   size="small"
+                   icon="el-icon-plus"
+                   plain
+                   @click="addSettleAccounts">新 单
+        </el-button>
+      </template>
+      <template slot-scope="scope" slot="menu">
+        <el-button icon="el-icon-check"  size="small" type="text" @click.stop="beforeOpenPage(scope.row,scope.index)">详 情</el-button>
+      </template>
+    </avue-crud>
+  </basic-container>
 </template>
 
 <script>
   import option from "./configuration/settleAccounts.json";
-  import {customerList, typeSave,detail,deleteDetails} from "@/api/basicData/customerCategory"
 
   export default {
-    name: "customerInformation",
     data() {
       return {
-        form: {},
+        loading: false,
+        data: [],
         option: option,
-        parentId:0,
-        dataList: [],
         page: {
-          pageSize: 10,
-          pagerCount: 5,
+          currentPage: 1,
           total: 0,
-        },
-        query:{},
-        //顶部from数据
-        basicData: {
-          column: [
-            {
-              label: '代码',
-              prop: 'orderNo',
-              rules: [
-                {
-                  required: false,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '项目名称',
-              prop: 'orderNo',
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '客户名称',
-              prop: 'orderNo',
-              data: [],
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '责任人',
-              prop: 'orderNo',
-              data: [],
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '电话',
-              prop: 'orderNo',
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '预收金额',
-              prop: 'orderNo',
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '开始日期',
-              prop: 'orderNo',
-              type:'datetime',
-              data: [],
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '结束日期',
-              prop: 'orderNo',
-              type:'datetime',
-              data: [],
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '收款方式',
-              prop: 'orderNo',
-              type:'select',
-              data: [],
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '备注',
-              prop: 'orderNo',
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }
-          ],
-        },
-      }
+          pageSize: 10
+        }
+      };
     },
-    created() {
-
+    mounted() {
+      option.height = window.innerHeight - 350 ;
     },
     methods: {
-      //新增时跳转页面
-      beforeOpen(row){
+      getList() {
+        this.loading = true;
+        setTimeout(() => {
+          this.loading = false;
+          this.data = [
+            {
+              prop1: "TUBAO",
+              prop2: "途宝注册",
+              prop3: "途宝",
+              prop4: "2100",
+              prop5: "1500",
+              prop6: "李俊平",
+              prop7: "XM0001",
+              prop8: "暂存",
+              prop9: "效率高",
+              prop10: "LOLO",
+              prop11: "2021-1-1",
+              prop12: "LOLO",
+              prop13: "2021-1-1",
+              prop14: "15199999999"
+            }
+          ];
+          this.page.total = 1;
+        }, 1000);
+      },
+      //新单打开
+      addSettleAccounts(){
         this.$router.push({
-          path: "/settleAccounts_editPages",
-          query: {id: JSON.stringify(row.fwxm)},
+          path: "/settleAccounts_detailsPage",
+          query: {id: ""},
         });
       },
-      //查看
-      beforeOpenPage(row){
+      //新增和修改时打开
+      beforeOpen(row, index){
         this.$router.push({
-          path: "/settleAccounts_editPages",
-          query: {id: JSON.stringify(row.fwxm)},
+          path: "/settleAccounts_detailsPage",
+          query: {id: JSON.stringify(row.prop1)},
         });
       },
-      //修改
-      editOpen(row){
+      //打开详情页
+      beforeOpenPage(row,index){
         this.$router.push({
-          path: "/settleAccounts_editPages",
-          query: {id: JSON.stringify(row.fwxm)},
+          path: "/settleAccounts_detailsPage",
+          query: {id: JSON.stringify(row.prop1)},
         });
       },
+      searchChange(params, done) {
+        this.getList(this.page, params);
+        done();
+      },
+      sizeChange(val) {
+        this.page.pageSize = val;
+        this.getList();
+      },
+      currentChange(val) {
+        this.page.currentPage = val;
+        this.getList();
+      },
+      refreshChange() {
+        this.page.currentPage = 1;
+        this.getList();
+      },
       //删除列表后面的删除按钮触发触发(row, index, done)
       rowDel(row, index, done) {
         this.$confirm("确定将选择数据删除?", {
@@ -251,90 +134,15 @@
           done(row);
         });
       },
-      //点击搜索按钮触发
-      searchChange(params, done) {
-        this.query = params;
-        this.page.currentPage = 1;
-        params.parentId = 0
-        this.onLoad(this.page, params);
-        done()
-      },
-      searchReset() {
-        console.log('1')
-      },
-      selectionChange() {
-        console.log('1')
+      cellDblclick(row, column, cell, event) {
+        console.log(row, column, cell, event);
+        this.$refs.crud.rowEdit(row);
       },
-      currentChange() {
-        console.log('1')
-      },
-      sizeChange() {
-        console.log('1')
-      },
-      refreshChange() {
-        console.log('1')
-      },
-      onLoad(page, params = {}) {
-        const {createTimeA} = this.query;
-        let values = {
-          ...params,
-          size:this.page.pageSize,
-          current:this.page.currentPage
-        };
-        if (createTimeA) {
-          values = {
-            ...params,
-            createTime: createTimeA[0] + ' 00:00:00',
-            endTime: createTimeA[1] + ' 23:59:59',
-            ...this.query,
-            size:this.page.pageSize,
-            current:this.page.currentPage
-          };
-          values.createTimeA = null;
-        }
-        values.parentId = 0
-        customerList(values).then(res => {
-          this.dataList = [
-            {
-              fwxm: "食品许可",
-              sfjy: "5000",
-              jjdw: "次",
-              sl:"12",
-              bj: "3000",
-              hjje: "6000",
-              qesf: "8000",
-              hejijin:"1500",
-              querenshou:"300",
-              pinlv:"年",
-              tixingri:"2022-11-30",
-              beizhu:"132",
-              renwubu:"商务部",
-              cnegzuoren:"小明",
-            },
-            {
-              fwxm: "食品许可",
-              sfjy: "5000",
-              jjdw: "次",
-              sl:"12",
-              bj: "3000",
-              hjje: "6000",
-              qesf: "8000",
-              hejijin:"1500",
-              querenshou:"300",
-              pinlv:"年",
-              tixingri:"2022-11-30",
-              beizhu:"132",
-              renwubu:"商务部",
-              cnegzuoren:"小明",
-            }
-          ];
-          this.page.total = 1;
-        })
+      saveColumn(row, column) {
+        console.log(row, column);
       },
     }
-  }
+  };
 </script>
 
-<style scoped>
-
-</style>
+<style></style>

+ 333 - 0
src/views/workManagement/receipt/settleAccountsDetailsPage.vue

@@ -0,0 +1,333 @@
+<template>
+  <div>
+    <containerTitle title="基础信息"></containerTitle>
+    <basic-container >
+      <el-form :model="form" ref="form" label-width="130px">
+        <el-row>
+          <el-col v-for="(item, index) in basicData.column" :span="item.span?item.span:8" :key="index">
+            <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
+              <el-date-picker v-if="item.type === 'datetime'" style="width: 100%;" v-model="form[item.prop]" size="small" type="datetime" placeholder="选择日期" value-format="yyyy-MM-dd HH:mm:ss"/>
+              <el-select v-else-if="item.type === 'select'" style="width: 100%" size="small" placeholder="请选择" clearable filterable></el-select>
+              <el-input type="age" v-else v-model="form[item.prop]" size="small" autocomplete="off" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </basic-container>
+    <containerTitle title="明细列表"></containerTitle>
+    <basic-container>
+      <avue-crud :option="option"
+                 :data="dataList"
+                 ref="crud"
+                 v-model="form"
+                 :page.sync="page"
+                 :before-open="beforeOpen"
+                 @row-del="rowDel"
+                 @row-save="rowSave"
+                 @search-change="searchChange"
+                 @search-reset="searchReset"
+                 @selection-change="selectionChange"
+                 @current-change="currentChange"
+                 @size-change="sizeChange"
+                 @refresh-change="refreshChange"
+                 @on-load="onLoad">
+        <template slot="menuLeft">
+          <el-button type="primary"
+                     size="small"
+                     icon="el-icon-arrow-right"
+                     plain
+                     @click="">导 出
+          </el-button>
+          <el-button type="primary"
+                     size="small"
+                     plain
+                     @click="">打 印
+          </el-button>
+          <el-button type="info"
+                     size="small"
+                     plain
+                     @click="">请 核
+          </el-button>
+        </template>
+        <template slot-scope="{row}" slot="querenshou">
+          <el-button type="primary"  size="small" @click="">结 算</el-button>
+        </template>
+        <template slot-scope="scope" slot="menu">
+          <el-button
+            type="text"
+            icon="el-icon-edit"
+            size="small"
+            @click.stop="editOpen(scope.row,scope.index)"
+          >{{scope.row.$cellEdit?'保存':'修改'}}
+          </el-button>
+          <el-button
+            type="text"
+            icon="el-icon-edit"
+            size="small"
+            @click.stop="rowDel(scope.row,scope.index)"
+          >移除
+          </el-button>
+        </template>
+      </avue-crud>
+    </basic-container>
+  </div>
+</template>
+
+<script>
+  import option from "./configuration/settleAccountsDetailsPage.json";
+  import {customerList, typeSave,detail,deleteDetails} from "@/api/basicData/customerCategory"
+
+  export default {
+    name: "customerInformation",
+    data() {
+      return {
+        form: {},
+        option: option,
+        parentId:0,
+        page: {
+          pageSize: 10,
+          pagerCount: 5,
+          total: 0,
+        },
+        query:{},
+        //顶部from数据
+        basicData: {
+          column: [
+            {
+              label: '代码',
+              prop: 'orderNo',
+              rules: [
+                {
+                  required: false,
+                  message: ' ',
+                  trigger: 'blur'
+                }
+              ]
+            }, {
+              label: '项目名称',
+              prop: 'orderNo',
+              rules: [
+                {
+                  required: true,
+                  message: ' ',
+                  trigger: 'blur'
+                }
+              ]
+            }, {
+              label: '客户名称',
+              prop: 'orderNo',
+              data: [],
+              rules: [
+                {
+                  required: true,
+                  message: ' ',
+                  trigger: 'blur'
+                }
+              ]
+            }, {
+              label: '责任人',
+              prop: 'orderNo',
+              data: [],
+              rules: [
+                {
+                  required: true,
+                  message: ' ',
+                  trigger: 'blur'
+                }
+              ]
+            }, {
+              label: '电话',
+              prop: 'orderNo',
+              rules: [
+                {
+                  required: true,
+                  message: ' ',
+                  trigger: 'blur'
+                }
+              ]
+            }, {
+              label: '预收金额',
+              prop: 'orderNo',
+              rules: [
+                {
+                  required: true,
+                  message: ' ',
+                  trigger: 'blur'
+                }
+              ]
+            }, {
+              label: '开始日期',
+              prop: 'orderNo',
+              type:'datetime',
+              data: [],
+              rules: [
+                {
+                  required: true,
+                  message: ' ',
+                  trigger: 'blur'
+                }
+              ]
+            }, {
+              label: '结束日期',
+              prop: 'orderNo',
+              type:'datetime',
+              data: [],
+              rules: [
+                {
+                  required: true,
+                  message: ' ',
+                  trigger: 'blur'
+                }
+              ]
+            }, {
+              label: '收款方式',
+              prop: 'orderNo',
+              type:'select',
+              data: [],
+              rules: [
+                {
+                  required: true,
+                  message: ' ',
+                  trigger: 'blur'
+                }
+              ]
+            }, {
+              label: '备注',
+              prop: 'orderNo',
+              rules: [
+                {
+                  required: true,
+                  message: ' ',
+                  trigger: 'blur'
+                }
+              ]
+            }
+          ],
+        },
+        //列表假数据
+        dataList : [
+          {
+            fwxm: "食品许可",
+            sfjy: "5000",
+            jjdw: "次",
+            sl:"12",
+            bj: "3000",
+            hjje: "6000",
+            qesf: "8000",
+            hejijin:"1500",
+            querenshou:"300",
+            pinlv:"年",
+            tixingri:"2022-11-30",
+            beizhu:"132",
+            renwubu:"商务部",
+            cnegzuoren:"小明",
+          },
+          {
+            fwxm: "食品许可",
+            sfjy: "5000",
+            jjdw: "次",
+            sl:"12",
+            bj: "3000",
+            hjje: "6000",
+            qesf: "8000",
+            hejijin:"1500",
+            querenshou:"300",
+            pinlv:"年",
+            tixingri:"2022-11-30",
+            beizhu:"132",
+            renwubu:"商务部",
+            cnegzuoren:"小明",
+          }
+        ]
+      }
+    },
+    created() {
+
+    },
+    methods: {
+      //新增时跳转页面
+      beforeOpen(done, type){
+        if (["add"].includes(type)) {
+          this.dataList.push({});
+        }
+      },
+      //修改
+      editOpen(row,index){
+        this.$refs.crud.rowCell(row, index)
+      },
+      //修改时保存触发
+      rowSave(row, done, loading) {
+        setTimeout(() => {
+          this.$message.success("保存成功");
+          loading();
+          done();
+        }, 1000);
+      },
+      //删除列表后面的删除按钮触发触发(row, index, done)
+      rowDel(row, index, done) {
+        this.$confirm("确定将选择数据删除?", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          // 数据回调进行刷新
+          done(row);
+        });
+      },
+      //点击搜索按钮触发
+      searchChange(params, done) {
+        this.query = params;
+        this.page.currentPage = 1;
+        params.parentId = 0
+        this.onLoad(this.page, params);
+        done()
+      },
+      searchReset() {
+        console.log('1')
+      },
+      selectionChange() {
+        console.log('1')
+      },
+      currentChange() {
+        console.log('1')
+      },
+      sizeChange() {
+        console.log('1')
+      },
+      refreshChange() {
+        console.log('1')
+      },
+      onLoad(page, params = {}) {
+        const {createTimeA} = this.query;
+        let values = {
+          ...params,
+          size:this.page.pageSize,
+          current:this.page.currentPage
+        };
+        if (createTimeA) {
+          values = {
+            ...params,
+            createTime: createTimeA[0] + ' 00:00:00',
+            endTime: createTimeA[1] + ' 23:59:59',
+            ...this.query,
+            size:this.page.pageSize,
+            current:this.page.currentPage
+          };
+          values.createTimeA = null;
+        }
+        values.parentId = 0
+        // customerList(values).then(res => {
+        //   this.page.total = 1;
+        // })
+      },
+    }
+  }
+</script>
+
+<style scoped>
+
+</style>

+ 0 - 350
src/views/workManagement/receipt/settleAccountsEdit.vue

@@ -1,350 +0,0 @@
-<template>
-  <div class="borderless">
-    <div class="customer-head">
-      <div class="customer-back">
-        <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
-                   @click="backToList">返回列表
-        </el-button>
-      </div>
-      <el-button
-        class="el-button--small-yh add-customer-btn"
-        type="primary"
-        @click=""
-      >{{form.id?'确认修改':'确认新增'}}
-      </el-button>
-    </div>
-    <div style="margin-top: 60px">
-      <basic-container>
-        <el-form :model="form" ref="form" label-width="130px">
-          <el-row>
-            <el-col v-for="(item, index) in basicData.column" :span="item.span?item.span:6" :key="index">
-              <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
-                <el-date-picker v-if="item.type === 'datetime'" style="width: 100%;" v-model="form[item.prop]" size="small" type="datetime" placeholder="选择日期" value-format="yyyy-MM-dd HH:mm:ss"/>
-                <el-select v-else-if="item.type === 'select'" style="width: 100%" size="small" placeholder="请选择" clearable filterable></el-select>
-                <el-input type="age" v-else v-model="form[item.prop]" size="small" autocomplete="off" placeholder="请输入"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-row>
-        </el-form>
-      </basic-container>
-    </div>
-  </div>
-</template>
-
-<script>
-  import option from "./configuration/settleAccounts.json";
-  export default {
-    data() {
-      return {
-        loading: false,
-        form:{},
-        data: [],
-        //顶部from数据
-        basicData:
-          {
-          column: [
-            {
-              label: '服务项目',
-              prop: 'prop1',
-              rules: [
-                {
-                  required: false,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '收费建议',
-              prop: 'prop2',
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '计价单位',
-              prop: 'prop3',
-              data: [],
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '数量',
-              prop: 'prop3',
-              data: [],
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '报价',
-              prop: 'prop4',
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '合计金额',
-              prop: 'prop5',
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '频率',
-              prop: 'prop6',
-              data: [],
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '提醒日',
-              prop: 'prop7',
-              data: [],
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '备注',
-              prop: 'prop8',
-              data: [],
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }, {
-              label: '任务部门',
-              prop: 'prop8',
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            },
-            {
-              label: '承做人',
-              prop: 'prop9',
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            },
-            {
-              label: '开始日期',
-              prop: 'prop10',
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            },
-            {
-              label: '需求完成日期',
-              prop: 'prop11',
-              type:'datetime',
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            },
-            {
-              label: '录入人',
-              prop: 'prop12',
-              type:'datetime',
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            },
-            {
-              label: '录入时间',
-              prop: 'prop13',
-              type:'select',
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            },
-            {
-              label: '最新修改人',
-              prop: 'prop8',
-              rules: [
-                {
-                  required: true,
-                  message: ' ',
-                  trigger: 'blur'
-                }
-              ]
-            }
-          ],
-        },
-        page: {
-          currentPage: 1,
-          total: 0,
-          pageSize: 10
-        }
-      };
-    },
-    methods: {
-      //删除列表后面的删除按钮触发触发(row, index, done)
-      rowDel(row, index, done) {
-        this.$confirm("确定将选择数据删除?", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(() => {
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          // 数据回调进行刷新
-          done(row);
-        });
-      },
-      //修改时的修改按钮点击触发
-      rowUpdate(row, index, done, loading) {
-        setTimeout(() => {
-          this.$message.success("修改成功");
-          loading();
-          done();
-        }, 1000);
-      },
-      //新增修改时保存触发
-      rowSave(row, done, loading) {
-        setTimeout(() => {
-          this.$message.success("保存成功");
-          loading();
-          done();
-        }, 1000);
-      },
-      getList() {
-        this.loading = true;
-        setTimeout(() => {
-          this.loading = false;
-          this.data = [
-            {
-              prop1: "食品许可",
-              prop2: "500",
-              prop3: "次",
-              prop4: "1",
-              prop5: "1500",
-              prop6: "1500",
-              prop7: "年",
-              prop8: "202202-1-1",
-              prop9: "效率高",
-              prop10: "商务部",
-              prop11: "老周",
-              prop12: "2021-1-1",
-              prop13: "2021-1-1",
-              prop14: "LOL",
-              prop15: "2021-1-1",
-              prop16: "LOL",
-              prop17: "2021-1-1"
-            }
-          ];
-          this.page.total = 1;
-        }, 1000);
-      },
-      searchChange(params, done) {
-        this.getList(this.page, params);
-        done();
-      },
-      sizeChange(val) {
-        this.page.pageSize = val;
-        this.getList();
-      },
-      currentChange(val) {
-        this.page.currentPage = val;
-        this.getList();
-      },
-      refreshChange() {
-        this.page.currentPage = 1;
-        this.getList();
-      },
-      cellDblclick(row, column, cell, event) {
-        console.log(row, column, cell, event);
-        this.$refs.crud.rowEdit(row);
-      },
-      saveColumn(row, column) {
-        console.log(row, column);
-      },
-      //返回主营项目列表
-      backToList(){
-        this.$router.$avueRouter.closeTag();
-        this.$router.push({
-          path: '/workManagement/receipt/settleAccounts',
-          query: {}
-        });
-      }
-    }
-  };
-</script>
-
-<style scoped lang="scss">
-  .customer-head {
-    position: fixed;
-    top: 105px;
-    width: 100%;
-    margin-left: -10px;
-    height: 62px;
-    background: #ffffff;
-    box-shadow: 0 4px 12px 0px rgba(232, 232, 235, 1);
-    z-index: 999;
-  }
-
-  .customer-back {
-    cursor: pointer;
-    line-height: 62px;
-    font-size: 16px;
-    color: #323233;
-    font-weight: 400;
-  }
-
-  .add-customer-btn {
-    position: fixed;
-    right: 36px;
-    top: 115px;
-  }
-</style>

+ 0 - 1
src/views/workManagement/receipt/statisticalList.vue

@@ -22,7 +22,6 @@
 
 <script>
   import option from "./configuration/statisticalList.json";
-  import {customerList, typeSave,detail,deleteDetails} from "@/api/basicData/customerCategory"
 
   export default {
     name: "statisticalList",

+ 16 - 0
src/views/workManagement/service-items/configuration/projectOption.json

@@ -42,6 +42,22 @@
       ]
     },
     {
+      "label": "服务类别",
+      "prop": "goodsTypeId",
+      "dicData": [],
+      "type": "tree",
+      "hide": true,
+      "multiple": true,
+      "props": {
+        "label": "title"
+      },
+      "rules": [{
+        "required": true,
+        "message": " ",
+        "trigger": "click"
+      }]
+    },
+    {
       "label": "收费建议",
       "prop": "remarks",
       "index": 2,

+ 51 - 18
src/views/workManagement/service-items/project.vue

@@ -21,6 +21,9 @@
           :option="tableOption"
           :page.sync="page"
           :table-loading="loading"
+          v-model='form'
+          :search.sync="search"
+          :before-open="beforeOpen"
           @size-change="sizeChange"
           @current-change="currentChange"
           @search-change="searchChange"
@@ -30,8 +33,9 @@
           @row-update="rowUpdate"
           @cell-dblclick="cellDblclick"
           @on-load="getList"
+          @saveColumn="saveColumn"
           @tree-load="treeLoad"
-          @saveColumn="saveColumn">
+        >
           <template slot="menuLeft">
             <el-button type="primary"
                        size="small"
@@ -48,21 +52,18 @@
 
 <script>
   import option from "./configuration/projectOption.json";
-  import {
-    getList,
-    remove,
-    update,
-    add,
-    getServerTree
-  } from "@/api/basicData/commodityType";
+  import {getList, remove, submit,detail, getServiceTypeTree,getDeptTree} from "@/api/workManagement/serviceProject";
 
 export default {
   data() {
     return {
-      loading: false,
+      loading: true,
       data: [],
       tableOption: option,
+      form:{},
+      search:{},
       treeDeptId:"",
+      treeDeptName:'',
       page: {
         currentPage: 1,
         total: 0,
@@ -73,9 +74,9 @@ export default {
         lazy: true,
         treeLoad: function(node, resolve) {
           const parentId = node.level === 0 ? 0 : node.data.id;
-          getServerTree(parentId).then(res => {
+          getServiceTypeTree(parentId).then(res => {
             resolve(
-              res.data.data.records.map(item => {
+              res.data.data.map(item => {
                 return {
                   ...item,
                   leaf: !item.hasChildren
@@ -89,7 +90,7 @@ export default {
         size: "small",
         props: {
           labelText: "标题",
-          label: "cname",
+          label: "title",
           value: "id",
           children: "children"
         }
@@ -98,13 +99,43 @@ export default {
   },
   mounted() {
     option.height = window.innerHeight - 350 ;
+    //查询服务类别字典项
+    getDeptTree().then(res => {
+      this.findObject(this.tableOption.column, "goodsTypeId").dicData = res.data.data;
+    });
   },
   methods: {
     getList(page, params = {}) {
+      this.loading = true
       getList(page.currentPage, page.pageSize, params, this.treeDeptId).then(res => {
         this.data = res.data.data.records
         this.page.total = res.data.data.total
+        this.loading = false
       })
+
+    },
+    //点击新增打开的窗口 取消时触发
+    // beforeClose(){
+
+    // },
+    //点击新增时
+    beforeOpen(done, type){
+      if (["add"].includes(type)) {
+        this.tableOption.column.forEach(e=>{
+          if(e.prop=='goodsTypeId'){
+            this.$set(this.tableOption.column,2,{...e,value:this.treeDeptId})
+          }
+        })
+
+      }
+      if (["edit"].includes(type)) {
+        console.log(456)
+        detail(this.form.id).then(res => {
+          res.data.data.warrantyPeriod = Date.parse(new Date(res.data.data.warrantyPeriod));
+          this.form = res.data.data;
+        });
+      }
+      done();
     },
     searchChange(params, done) {
       this.getList(this.page, params);
@@ -119,12 +150,12 @@ export default {
       this.getList();
     },
     refreshChange() {
-      this.page.currentPage = 1;
-      this.getList();
+      this.getList(this.page,this.search);
     },
     rowSave(row, done, loading) {
       row.sort = 1;
-      add(row).then(res => {
+      row.goodsTypeId = Array.isArray(row.goodsTypeId) ? row.goodsTypeId.join(',') :  row.goodsTypeId;
+      submit(row).then(() => {
         this.page.currentPage = 1;
         this.getList(this.page);
         this.$message.success("保存成功");
@@ -135,7 +166,8 @@ export default {
       });
     },
     rowUpdate(row, index, done, loading) {
-      update(row).then(() => {
+      submit(row).then(() => {
+        this.getList(this.page);
         this.$message({
           type: "success",
           message: "操作成功!"
@@ -159,12 +191,11 @@ export default {
           type: "success",
           message: "操作成功!"
         });
-        // 数据回调进行刷新
+        this.getList(this.page);
         done(row);
       });
     },
     cellDblclick(row, column, cell, event) {
-      console.log(row, column, cell, event);
       this.$refs.crud.rowEdit(row);
     },
     saveColumn(row, column) {
@@ -172,10 +203,12 @@ export default {
     },
     //展开主页左边类型
     nodeClick(data) {
+      this.treeDeptName = data.cname;
       this.treeDeptId = data.id;
       this.page.currentPage = 1;
       this.getList(this.page);
     },
+    //列表内展开树节点
     treeLoad(tree, treeNode, resolve) {
       const parentId = tree.id;
       getList({parentId:parentId}).then(res => {

+ 42 - 61
src/views/workManagement/service-items/type.vue

@@ -4,20 +4,19 @@
                :data="dataList"
                ref="crud"
                v-model="form"
+               :table-loading="loading"
                :page.sync="page"
+               :search.sync="search"
                @row-del="rowDel"
                @row-update="rowUpdate"
                :before-open="beforeOpen"
                :before-close="beforeClose"
                @row-save="rowSave"
                @search-change="searchChange"
-               @search-reset="searchReset"
-               @selection-change="selectionChange"
-               @current-change="currentChange"
-               @size-change="sizeChange"
                @refresh-change="refreshChange"
                @on-load="onLoad"
-               @tree-load="treeLoad">
+               @tree-load="treeLoad"
+    >
       <template slot-scope="scope" slot="menu">
         <el-button
           type="text"
@@ -33,15 +32,17 @@
 
 <script>
   import option from "./configuration/typeOption.json";
-  import {customerList, typeSave,detail,deleteDetails} from "@/api/basicData/commodityCategory"
+  import {getList, typeSave,detail,deleteDetails} from "@/api/workManagement/serviceType"
 
   export default {
     name: "customerInformation",
     data() {
       return {
         form: {},
+        search:{},//搜索表单
         option: option,
         parentId:0,
+        loading:true,
         dataList: [],
         page: {
           pageSize: 10,
@@ -58,6 +59,24 @@
       option.height = window.innerHeight - 350 ;
     },
     methods: {
+      onLoad(page, params = {}) {
+        this.loading = true;
+        let values = {
+          ...params,
+          size:this.page.pageSize,
+          current:this.page.currentPage
+        };
+        values.parentId = 0;
+        getList(values).then(res => {
+          this.dataList = res.data.data.records
+          this.page.total = res.data.data.total
+          this.loading=false;
+        })
+      },
+      refreshChange() {
+        this.loading=true;
+        this.onLoad(this.page,this.search);
+      },
       //删除列表后面的删除按钮触发触发(row, index, done)
       rowDel(row, index, done) {
         this.$confirm("确定将选择数据删除?", {
@@ -75,9 +94,21 @@
           done(row);
         });
       },
+      //新增时保存触发
+      rowSave(row, done, loading) {
+        typeSave(row).then(res => {
+          this.onLoad(this.page, {parentId: 0});
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          done()
+        })
+      },
       //修改时的修改按钮点击触发
       rowUpdate(row, index, done, loading) {
         typeSave(row).then(() => {
+          this.onLoad(this.page, {parentId: 0});
           this.$message({
             type: "success",
             message: "操作成功!"
@@ -89,21 +120,9 @@
           loading();
         });
       },
-      //新增修改时保存触发
-      rowSave(row, done, loading) {
-        typeSave(row).then(res => {
-          this.page.currentPage = 1;
-          this.onLoad(this.page, {parentId: 0});
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          done()
-        })
-      },
       //查询全部
       initData(){
-        customerList({parentId:0}).then(res => {
+        getList({parentId:0}).then(res => {
           const column = this.findObject(this.option.column, "parentId");
           column.dicData = res.data.data.records;
         });
@@ -128,7 +147,7 @@
         }
         done();
       },
-      //点击新增时触发
+      //点击新增取消时触发
       beforeClose(done) {
         this.parentId = "";
         const column = this.findObject(this.option.column, "parentId");
@@ -138,54 +157,16 @@
       },
       //点击搜索按钮触发
       searchChange(params, done) {
+        this.loading = true;
         this.query = params;
         this.page.currentPage = 1;
         this.onLoad(this.page, params);
         done()
       },
-      searchReset() {
-        console.log('1')
-      },
-      selectionChange() {
-        console.log('1')
-      },
-      currentChange() {
-        console.log('1')
-      },
-      sizeChange() {
-        console.log('1')
-      },
-      refreshChange() {
-        console.log('1')
-      },
-      onLoad(page, params = {}) {
-        const {createTimeA} = this.query;
-        let values = {
-          ...params,
-          size:this.page.pageSize,
-          current:this.page.currentPage
-        };
-        if (createTimeA) {
-          values = {
-            ...params,
-            createTime: createTimeA[0] + ' 00:00:00',
-            endTime: createTimeA[1] + ' 23:59:59',
-            size:this.page.pageSize,
-            current:this.page.currentPage,
-            ...this.query,
-          };
-          values.createTimeA = null;
-        }
-        values.parentId = 0
-        customerList(values).then(res => {
-          this.dataList = res.data.data.records
-          this.page.total = res.data.data.total
-        })
-      },
-      //树桩列点击展开触发
+      //列表内展开树节点
       treeLoad(tree, treeNode, resolve) {
         const parentId = tree.id;
-        customerList({parentId:parentId}).then(res => {
+        getList({parentId:parentId}).then(res => {
           resolve(res.data.data.records);
         });
       },