2213980799@qq.com 1 рік тому
батько
коміт
96587a2e14
23 змінених файлів з 1403 додано та 119 видалено
  1. 8 0
      src/api/equipmentDisposal/index.js
  2. 10 3
      src/utils/dict/warehouse.js
  3. 104 63
      src/views/equipmentDisposal/components/edit.vue
  4. 2 2
      src/views/equipmentDisposal/components/search.vue
  5. 11 19
      src/views/equipmentDisposal/components/templateList.vue
  6. 1 1
      src/views/equipmentDisposal/infoDisposal/index.vue
  7. 307 0
      src/views/equipmentLease/components/DialogGoods.vue
  8. 497 0
      src/views/equipmentLease/components/edit.vue
  9. 129 0
      src/views/equipmentLease/components/search.vue
  10. 252 0
      src/views/equipmentLease/index.vue
  11. 6 2
      src/views/ledgerAssets/boat/components/boat-list.vue
  12. 17 7
      src/views/ledgerAssets/boat/components/boat-search.vue
  13. 7 2
      src/views/ledgerAssets/equipment/components/equipment-list.vue
  14. 3 3
      src/views/ledgerAssets/equipment/components/equipment-search.vue
  15. 6 2
      src/views/ledgerAssets/material/components/material-list.vue
  16. 6 2
      src/views/ledgerAssets/meter/components/equipment-list.vue
  17. 7 2
      src/views/ledgerAssets/mould/components/mould-list.vue
  18. 6 2
      src/views/ledgerAssets/office/components/data-list.vue
  19. 6 2
      src/views/ledgerAssets/sparepart/components/sparepart-list.vue
  20. 6 2
      src/views/ledgerAssets/turnoverCar/components/turnovercar-list.vue
  21. 6 2
      src/views/ledgerAssets/turnoverDisks/components/equipment-list.vue
  22. 5 2
      src/views/maintenance/components/MaterialAdd.vue
  23. 1 1
      src/views/sparePartsApply/index.vue

+ 8 - 0
src/api/equipmentDisposal/index.js

@@ -82,6 +82,14 @@ export async function templateList(data) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+//模板删除
+export async function removeTemplate(data) {
+  const res = await request.delete(`/eam/disposal_template_list/remove`, { data });
+  if (res.data.code == 0) {
+    return res.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
 /**
  * 流程列表
  */

+ 10 - 3
src/utils/dict/warehouse.js

@@ -136,8 +136,15 @@ export const businessStatus = [
 
 // 生命周期
 export const sourceStatus = {
-  0:'在库',
+  0: '在库',
   1: '在用',
-  2:'已变更',
-  3:'封存'
+  2: '捐赠',
+  3: '转让',
+  4: '调拨',
+  5: '报废',
+  6: '启封',
+  7: '封存',
+  8: '限用',
+  9: '变更',
+  10: '停用',
 };

+ 104 - 63
src/views/equipmentDisposal/components/edit.vue

@@ -41,6 +41,16 @@
         选择模板
       </el-button>
       <el-row :gutter="15">
+        <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
+          <el-form-item label="处置方式:" prop="disposalType">
+            <DictSelection
+              dictName="设备处置方式"
+              v-model="form.disposalType"
+              :disabled="type == 'detail'"
+              @change="disposalTypeChange"
+            ></DictSelection>
+          </el-form-item>
+        </el-col>
         <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
           <el-form-item label="编码:" prop="code">
             <el-input v-model="form.code" disabled />
@@ -51,15 +61,7 @@
             <el-input v-model="form.name" :disabled="type == 'detail'" />
           </el-form-item>
         </el-col>
-        <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
-          <el-form-item label="处置方式:" prop="disposalType">
-            <DictSelection
-              dictName="设备处置方式"
-              v-model="form.disposalType"
-              :disabled="type == 'detail'"
-            ></DictSelection>
-          </el-form-item>
-        </el-col>
+
         <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
           <el-form-item label="管理类别:" prop="managementCategory">
             <DictSelection
@@ -69,8 +71,21 @@
             ></DictSelection>
           </el-form-item>
         </el-col>
-        <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
-          <el-form-item label="审批流程:" prop="processId">
+        <el-col
+          v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }"
+          v-if="!['2', '3', '10'].includes(form.disposalType)"
+        >
+          <el-form-item
+            label="审批流程:"
+            prop="processId"
+            :rules="[
+              {
+                required: !['2', '3', '10'].includes(form.disposalType),
+                message: '请选择',
+                trigger: 'change'
+              }
+            ]"
+          >
             <el-select
               filterable
               clear
@@ -140,8 +155,8 @@
         </template>
       </ele-pro-table>
       <headerTitle title="处置业务" style="margin-top: 15px">
-      <template v-slot:action>
-        <!-- <el-button
+        <template v-slot:action>
+          <!-- <el-button
           size="small"
           type="primary"
           class="ele-btn-icon"
@@ -150,50 +165,57 @@
         >
           新增处置业务
         </el-button> -->
-      </template>
-    </headerTitle>
-    <el-form label-width="150px" class="create-form">
-      <el-button
-        size="small"
-        type="primary"
-        class="ele-btn-icon"
-        style="margin-left: 15px; margin-bottom: 15px"
-        @click="infoDisposalVisible = true"
-        v-if="type != 'detail'"
-      >
-        新增处置业务
-      </el-button>
-      <el-row :gutter="15">
-        <el-col
-          v-bind="styleResponsive ? { lg: 24, md: 24 } : { span: 24 }"
-          v-for="item in disposalTypeList"
-          :key="item.id"
+        </template>
+      </headerTitle>
+      <el-form label-width="150px" class="create-form">
+        <el-button
+          size="small"
+          type="primary"
+          class="ele-btn-icon"
+          style="margin-left: 15px; margin-bottom: 15px"
+          @click="infoDisposalVisible = true"
+          v-if="type != 'detail'"
         >
-          <el-form-item :label="item.name + ':'">
-            <div style="width: 95%; display: inline-block">
-          
-              <formContent :type="item.type" :disabled="type == 'detail'"  v-model="item.value" />
-            </div>
+          新增处置业务
+        </el-button>
+        <el-row :gutter="15">
+          <el-col
+            v-bind="styleResponsive ? { lg: 24, md: 24 } : { span: 24 }"
+            v-for="item in disposalTypeList"
+            :key="item.id"
+          >
+            <el-form-item :label="item.name + ':'">
+              <div style="width: 95%; display: inline-block">
+                <formContent
+                  :type="item.type"
+                  :disabled="type == 'detail'"
+                  v-model="item.value"
+                />
+              </div>
 
-            <el-link
-              type="danger"
-              :underline="false"
-              v-if="type != 'detail'"
-              icon="el-icon-delete"
-              style="display: inline-block"
-              @click.native="delInfoDisposal(item.id)"
-            >
-            </el-link>
-          </el-form-item>
-        </el-col> </el-row
-    ></el-form>
+              <el-link
+                type="danger"
+                :underline="false"
+                v-if="type != 'detail'"
+                icon="el-icon-delete"
+                style="display: inline-block"
+                @click.native="delInfoDisposal(item.id)"
+              >
+              </el-link>
+            </el-form-item>
+          </el-col> </el-row
+      ></el-form>
     </el-form>
 
-
-    <template v-slot:footer v-if="type != 'detail'">
+    <template v-slot:footer>
       <el-button @click="cancel">取消</el-button>
 
-      <el-button type="primary" @click="save" :loading="loading">
+      <el-button
+        type="primary"
+        @click="save"
+        :loading="loading"
+        v-if="type != 'detail'"
+      >
         保存
       </el-button>
       <el-button type="primary" @click="isTemplate = true">
@@ -252,8 +274,6 @@ import infoDisposalList from '@/views/equipmentDisposal/infoDisposal/index.vue';
 import { save, saveTemplate, bpmPage } from '@/api/equipmentDisposal/index.js';
 import formContent from '@/views/equipmentDisposal/infoDisposal/formContent.vue';
 
-import deptSelect from '@/components/CommomSelect/dept-select.vue';
-
 const defForm = {
   name: '',
   id: '', //维修工单id
@@ -269,7 +289,6 @@ export default {
     // AssetsDialog,
     MaterialAdd,
     infoDisposalList,
-    deptSelect,
     Detail,
     templateList,
     formContent
@@ -292,8 +311,8 @@ export default {
       rules: {
         name: [{ required: true, message: '请选择', trigger: 'change' }],
         type: [{ required: true, message: '请选择', trigger: 'change' }],
-        processId: [{ required: true, message: '请选择', trigger: 'change' }],
-        disposalType: [{ required: true, message: '请选择', trigger: 'change' }],
+
+        disposalType: [{ required: true, message: '请选择', trigger: 'change' }]
       },
       deviceList: [],
       disposalTypeList: [],
@@ -319,7 +338,7 @@ export default {
     // console.log(this.bpmList)
   },
   methods: {
-    async columnsInit(list = []) {
+    async columnsInit(type) {
       this.columns = [
         {
           columnKey: 'index',
@@ -334,16 +353,22 @@ export default {
           prop: 'fixCode',
           label: '固资编码',
           showOverflowTooltip: true,
+          width: 100,
+          fixed: 'left',
           align: 'center'
         },
         {
           prop: 'codeNumber',
           label: '编码',
+          width: 100,
+          fixed: 'left',
           showOverflowTooltip: true,
           align: 'center'
         },
         {
           prop: 'name',
+          width: 120,
+          fixed: 'left',
           showOverflowTooltip: true,
           label: '名称',
           align: 'center'
@@ -363,7 +388,13 @@ export default {
           label: '规格',
           align: 'center'
         },
-        ...list,
+        {
+          prop: 'sealingTime',
+          showOverflowTooltip: true,
+          label: '封存时间',
+          show: type == 6,
+          align: 'center'
+        },
         {
           showOverflowTooltip: true,
           prop: 'postName',
@@ -388,6 +419,7 @@ export default {
           showOverflowTooltip: true,
           align: 'center'
         },
+
         {
           prop: 'originalValue',
           label: '原值',
@@ -431,7 +463,9 @@ export default {
             return _row.deviceLocationName
               ? _row.deviceLocationName + '-' + positionDetail
               : '';
-          }
+          },
+
+          align: 'center'
         },
         {
           columnKey: 'action',
@@ -446,10 +480,10 @@ export default {
       ];
     },
     async open(row, type) {
-      this.activeComp='main'
+      this.activeComp = 'main';
 
       this.type = type;
-      this.columnsInit();
+
       if (type != 'add') {
         this.form = JSON.parse(JSON.stringify(row));
         this.form.disposalType = this.form.disposalType + '';
@@ -457,9 +491,12 @@ export default {
         this.deviceList = this.form.deviceList;
         this.disposalTypeList = this.form.disposalTypeList;
       }
-
+      this.columnsInit(this.form.disposalType);
       this.visible = true;
     },
+    disposalTypeChange(val) {
+      this.columnsInit(val);
+    },
     del(id) {
       this.deviceList = this.deviceList.filter((item) => item.id != id);
     },
@@ -472,7 +509,11 @@ export default {
     },
 
     addEquipment() {
-      this.$refs.materialAddRef.open(null, null, true, this.deviceList);
+      if (!this.form.disposalType) {
+        this.$message.error('请选择处置方式');
+        return;
+      }
+      this.$refs.materialAddRef.open(null, null, true, this.deviceList,this.form.disposalType);
     },
     // 确定选择
     confirmChoose(data) {

+ 2 - 2
src/views/equipmentDisposal/components/search.vue

@@ -11,7 +11,7 @@
         <el-form-item label="处置方式:">
           <DictSelection
               dictName="设备处置方式"
-              v-model="where.type"
+              v-model="where.disposalType"
             ></DictSelection>
         </el-form-item>
       </el-col>
@@ -94,7 +94,7 @@ export default {
       code: '',
       name: '',
       fixCode:'',
-      type:'',
+      disposalType:'',
       categoryName: '',
       deptIds: '',
       

+ 11 - 19
src/views/equipmentDisposal/components/templateList.vue

@@ -26,14 +26,6 @@
       </template>
       <!-- 操作列 -->
       <template v-slot:action="{ row }">
-        <el-link
-          type="primary"
-          :underline="false"
-          icon="el-icon-edit"
-          @click="open(row, 'edit')"
-        >
-          编辑
-        </el-link>
         <el-popconfirm
           class="ele-action"
           title="确定要删除吗?"
@@ -55,7 +47,7 @@
 </template>
 
 <script>
-import { templateList, remove } from '@/api/equipmentDisposal/index.js';
+import { templateList, removeTemplate } from '@/api/equipmentDisposal/index.js';
 
 import dictMixins from '@/mixins/dictMixins';
 // import equipmentSearch from './components/search.vue';
@@ -107,15 +99,15 @@ export default {
           align: 'center',
           label: '创建时间'
         }
-
-        // {
-        //   columnKey: 'action',
-        //   slot: 'action',
-        //   align: 'center',
-        //   label: '操作',
-        //   width: 240,
-        //   fixed: 'right'
-        // }
+,
+        {
+          columnKey: 'action',
+          slot: 'action',
+          align: 'center',
+          label: '操作',
+          width: 150,
+          fixed: 'right'
+        }
       ]
     };
   },
@@ -146,7 +138,7 @@ export default {
       this.visibleSync = false;
     },
     remove(row) {
-      remove([row.id]).then((res) => {
+      removeTemplate([row.id]).then((res) => {
         this.$message.success('删除成功!');
         this.reload();
       });

+ 1 - 1
src/views/equipmentDisposal/infoDisposal/index.vue

@@ -123,7 +123,7 @@ export default {
         align: 'center',
         label: '类型',
         formatter: (row, column, cellValue) => {
-          return cellValue == 1 ? '输入框' : cellValue == 2 ? '部门选择框' : '';
+          return cellValue == 1 ? '输入框' : cellValue == 2 ? '部门选择框' : cellValue == 3 ? '日期选择框' : '';
         }
       },
 

+ 307 - 0
src/views/equipmentLease/components/DialogGoods.vue

@@ -0,0 +1,307 @@
+<template>
+  <div class="dialogBox">
+    <el-dialog
+      :close-on-click-modal="false"
+      :append-to-body="appendToBody"
+      :title="title"
+      :visible.sync="visibleSync"
+      :before-close="close"
+      :width="width"
+      :custom-class="customClass"
+    >
+      <ele-split-layout
+        width="256px"
+        allow-collapse
+        :right-style="{ overflow: 'hidden' }"
+      >
+        <div>
+          <div class="select">
+            <el-select
+              size="small"
+              @change="productChange"
+              v-model="productId"
+              placeholder="请选择"
+            >
+              <el-option
+                v-for="item in productList"
+                :label="item.name"
+                :value="item.id"
+                :key="item.id"
+              >
+              </el-option>
+            </el-select>
+          </div>
+          <div class="tree">
+            <asset-tree
+              @handleNodeClick="handleNodeClick"
+              ref="AssetTree"
+              :paramsType="'type'"
+              :init="false"
+              id="4"
+            />
+          </div>
+        </div>
+        <!-- <div class="minHeight ele-border-lighter split-layout-right-content">
+          <template> </template>
+          
+        </div> -->
+        <template v-slot:content>
+          <!-- 数据表格 -->
+          <ele-pro-table
+            ref="table"
+            :initLoad="false"
+            :columns="columns"
+            height="60vh"
+            :current.sync="current"
+            highlight-current-row
+            :datasource="datasource"
+            tool-class="ele-toolbar-form"
+            cache-key="systemOrgUserTable"
+            @row-click="chooseRow"
+          >
+            <!-- 表头工具栏 -->
+            <template v-slot:toolbar>
+              <el-row :gutter="22">
+                <el-col :span="8">
+                  <el-input
+                    type="text"
+                    v-model="searchForm.searchKey"
+                    size="small"
+                    placeholder="搜索物品编码/名称"
+                  ></el-input>
+                </el-col>
+                <el-col :span="8">
+                  <el-button
+                    icon="el-icon-refresh-left"
+                    size="small"
+                    @click="rest"
+                    >重置</el-button
+                  >
+                  <el-button
+                    type="primary"
+                    icon="el-icon-search"
+                    size="small"
+                    @click="reload"
+                    >搜索</el-button
+                  >
+                </el-col>
+              </el-row>
+            </template>
+            <template v-slot:action="{ row }">
+              <el-radio class="radio" v-model="radio" :label="row.id"
+                ><i></i
+              ></el-radio>
+            </template>
+          </ele-pro-table>
+        </template>
+      </ele-split-layout>
+      <footer slot="footer">
+        <el-button @click="close">取消</el-button>
+        <el-button @click="submit" type="primary">确认</el-button>
+      </footer>
+    </el-dialog>
+  </div>
+</template>
+<script>
+  import AssetTree from '@/components/AssetTree';
+  // import { getList } from "@/api/stockManagement/itemInformation";
+  import { getList } from '@/api/classifyManage/itemInformation';
+  import dictMixins from '@/mixins/dictMixins';
+  import { getTreeByPid } from '@/api/classifyManage';
+  export default {
+    mixins: [dictMixins],
+    props: {
+      // 宽度
+      width: {
+        type: String,
+        default: () => null
+      },
+      // 类名
+      customClass: {
+        type: String,
+        default: () => null
+      },
+      appendToBody: {
+        type: Boolean,
+        default: () => false
+      }
+    },
+    components: {
+      AssetTree
+    },
+    data() {
+      return {
+        productId: '',
+        visibleSync: false,
+        title: '选择物品',
+        searchForm: {
+          searchKey: '',
+          categoryLevelId: '1'
+        },
+        current: {},
+        radio: null,
+        productList: []
+      };
+    },
+    computed: {
+      // 表格列配置
+      columns() {
+        return [
+          {
+            columnKey: 'index',
+            type: 'index',
+            width: 80,
+            label: '序号',
+            align: 'center',
+            showOverflowTooltip: true,
+            fixed: 'left'
+          },
+          {
+            prop: 'code',
+            label: '物品编码',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'name',
+            label: '物品名称',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'specification',
+            label: '规格',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'modelType',
+            label: '型号',
+            showOverflowTooltip: true
+          },
+          // {
+          //   prop: 'type',
+          //   label: '物品类型',
+          //   showOverflowTooltip: true,
+          //   formatter: (_row) => this.getDictValue('类型用途', _row.type)
+          // },
+          {
+            prop: 'categoryLevelPath',
+            label: '分类',
+            showOverflowTooltip: true
+          },
+          {
+            columnKey: 'action',
+            slot: 'action',
+            align: 'center',
+            fixed: 'right',
+            width: 50
+          }
+        ];
+      }
+    },
+    created() {
+      this.requestDict('类型用途');
+    },
+    methods: {
+      productChange(e) {
+        this.$refs.AssetTree.getTreeData(e);
+      },
+      /* 表格数据源 */
+      datasource({ page, limit, where }) {
+        return getList({
+          ...where,
+          pageNum: page,
+          size: limit
+        });
+      },
+      reload() {
+        this.radio = null;
+        this.$nextTick(() => {
+          this.$refs.table.reload({
+            pageNum: 1,
+            where: {
+              ...this.searchForm
+            }
+          });
+        });
+      },
+      async open(id, boolen) {
+        this.visibleSync = true;
+        const { data } = await getTreeByPid(id);
+        this.productList = data;
+        this.$refs.AssetTree.getTreeData(id, boolen);
+        this.productId = '';
+      },
+      close() {
+        this.visibleSync = false;
+      },
+      rest() {
+        this.searchForm.searchKey = '';
+        this.reload();
+      },
+      handleNodeClick(info) {
+        this.searchForm.categoryLevelId = info.id;
+        this.reload();
+      },
+      chooseRow(row) {
+        this.current = row;
+        this.radio = row.id;
+      },
+      submit() {
+        if (!this.current) {
+          return this.$message.error('请选择物品编码');
+        }
+        this.$emit('succeed', this.current);
+        this.close();
+      }
+    }
+  };
+</script>
+<style lang="scss" scoped>
+  .select {
+    background: #fafafa;
+    border: 1px solid #ededed;
+    border-bottom: none;
+    padding: 9px 15px;
+    .el-select {
+      width: 100%;
+    }
+  }
+  .tree {
+    height: calc(100vh - 280px);
+    border: 1px solid #ededed;
+  }
+  .from-search-bar {
+    display: flex;
+    .btn-wrap {
+      margin-left: 20px;
+    }
+  }
+
+  .main {
+    display: flex;
+    .tree-col {
+      margin-right: 10px;
+      width: 350px;
+      height: 500px;
+      overflow-y: auto;
+      padding: 0 !important;
+      background-color: #fff;
+      margin-top: 10px;
+      border: 1px solid #e6ebf5;
+      border-radius: 4px;
+      overflow-x: auto;
+      box-sizing: border-box;
+    }
+    .right-wrap {
+      width: 100%;
+      margin-top: 10px;
+      .tableRef {
+        height: 450px;
+      }
+      .btn-wrap {
+        display: flex;
+        justify-content: flex-end;
+        margin-top: 20px;
+      }
+    }
+  }
+</style>

+ 497 - 0
src/views/equipmentLease/components/edit.vue

@@ -0,0 +1,497 @@
+<template>
+  <ele-modal
+    :visible.sync="visible"
+    :title="title"
+    width="60vw"
+    append-to-body
+    @close="cancel"
+  >
+    <div class="switch" v-if="type == 'detail'">
+      <div class="switch_left">
+        <ul>
+          <li
+            v-for="item in tabOptions"
+            :key="item.key"
+            :class="{ active: activeComp == item.key }"
+            @click="activeComp = item.key"
+          >
+            {{ item.name }}
+          </li>
+        </ul>
+      </div>
+    </div>
+
+    <el-form
+      ref="form"
+      :model="form"
+      :rules="rules"
+      label-width="100px"
+      class="create-form"
+      v-if="activeComp === 'main'"
+    >
+      <headerTitle title="基本信息" style="margin-top: 15px"></headerTitle>
+
+      <el-row :gutter="15">
+        <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
+          <el-form-item label="编码:" prop="code">
+            <el-input v-model="form.code" disabled />
+          </el-form-item>
+        </el-col>
+        <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
+          <el-form-item label="名称:" prop="name">
+            <el-input v-model="form.name" :disabled="type == 'detail'" />
+          </el-form-item>
+        </el-col>
+
+        <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
+          <el-form-item label="用途类型:" prop="managementCategory">
+            <DictSelection
+              dictName="管理类别"
+              v-model="form.managementCategory"
+              :disabled="type == 'detail'"
+            ></DictSelection>
+          </el-form-item>
+        </el-col>
+        <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
+          <el-form-item label="申请机构:" prop="managementCategory">
+            <deptSelect
+              :disabled="type == 'detail'"
+              v-model="form.useDeptId"
+              @changeGroup="searchDeptNodeClick"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="申请人" prop="userId">
+            <el-select
+              :disabled="type == 'detail'"
+              v-model="form.userId"
+              @change="changeExecutor"
+              size="small"
+              style="width: 100%"
+              filterable
+            >
+              <el-option
+                v-for="item in executorList"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
+          <el-form-item label="审批流程:" prop="processId">
+            <el-select
+              filterable
+              clear
+              size="small"
+              v-model="form.processId"
+              :disabled="type == 'detail'"
+              placeholder="请选择"
+              style="width: 100%"
+            >
+              <el-option
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+                v-for="item in bpmList"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
+
+      <headerTitle title="租赁明细" style="margin-top: 15px"></headerTitle>
+      <ele-pro-table
+        ref="table"
+        :columns="columns"
+        :datasource="deviceList"
+        row-key="id"
+        height="30vh"
+        :needPage="false"
+      >
+        <template v-slot:toolbar>
+          <div
+            class="add-product"
+            @click="addEquipment"
+            v-if="type != 'detail'"
+          >
+            <i class="el-icon-circle-plus-outline"></i>
+          </div>
+        </template>
+        <template v-slot:modelType="{ row }">
+          <span>{{ row.category.modelType }}</span>
+        </template>
+        <template v-slot:specification="{ row }">
+          <span>{{ row.category.specification }}</span>
+        </template>
+
+        <template v-slot:action="{ row }">
+          <el-popconfirm
+            v-if="type != 'detail'"
+            class="ele-action"
+            title="确定要删除吗?"
+            @confirm="del(row.id)"
+          >
+            <template v-slot:reference>
+              <el-link type="danger" :underline="false" icon="el-icon-delete">
+                删除
+              </el-link>
+            </template>
+          </el-popconfirm>
+        </template>
+      </ele-pro-table>
+    </el-form>
+
+    <template v-slot:footer>
+      <el-button @click="cancel">取消</el-button>
+
+      <el-button
+        type="primary"
+        @click="save"
+        :loading="loading"
+        v-if="type != 'detail'"
+      >
+        保存
+      </el-button>
+    </template>
+
+    <!-- 选择产品 -->
+
+    <MaterialAdd ref="materialAddRef" @chooseEquipment="confirmChoose">
+    </MaterialAdd>
+
+    <Detail
+      v-if="activeComp === 'bpm' && form.processInstanceId"
+      :id="form.processInstanceId"
+    ></Detail>
+  </ele-modal>
+</template>
+
+<script>
+// import AssetsDialog from './AssetsDialog.vue';
+import MaterialAdd from '@/views/maintenance/components/MaterialAdd.vue';
+import Detail from '@/views/processInstance/detail.vue';
+import { getUserPage } from '@/api/system/organization';
+
+import { save,bpmPage } from '@/api/equipmentDisposal/index.js';
+
+import deptSelect from '@/components/CommomSelect/dept-select.vue';
+
+const defForm = {
+  name: '',
+  id: '', //维修工单id
+  disposalType: '',
+  managementCategory: '',
+  code: '',
+  processId: '',
+  disposalTypeList: [],
+  deviceList: []
+};
+export default {
+  components: {
+    // AssetsDialog,
+    MaterialAdd,
+    deptSelect,
+    Detail
+
+    // workList
+  },
+  data() {
+    return {
+      activeComp: 'main',
+      tabOptions: [
+        { key: 'main', name: '处置详情' },
+        { key: 'bpm', name: '流程详情' }
+      ],
+      visible: false,
+      loading: false,
+      isTemplate: false,
+      infoDisposalVisible: false,
+      title: '设备租赁',
+      type: '',
+      form: { ...defForm },
+      rules: {
+        name: [{ required: true, message: '请选择', trigger: 'change' }],
+        type: [{ required: true, message: '请选择', trigger: 'change' }],
+        processId: [{ required: true, message: '请选择', trigger: 'change' }],
+        disposalType: [{ required: true, message: '请选择', trigger: 'change' }]
+      },
+      deviceList: [],
+      disposalTypeList: [],
+      columns: [],
+      templateName: '',
+      bpmList: [],
+      executorList: []
+    };
+  },
+
+  computed: {
+    // 是否开启响应式布局
+    styleResponsive() {
+      return this.$store.state.theme.styleResponsive;
+    }
+  },
+  async created() {
+    const data = await bpmPage({
+      pageSize: 100,
+      pageNo: 1,
+      processTypeId: '1853725791034118145'
+    });
+    this.bpmList = data.list;
+    // console.log(this.bpmList)
+  },
+  methods: {
+    async columnsInit(type) {
+      this.columns = [
+        {
+          columnKey: 'index',
+          label: '序号',
+          type: 'index',
+          width: 55,
+          align: 'center',
+          showOverflowTooltip: true,
+          fixed: 'left'
+        },
+        {
+          prop: 'fixCode',
+          label: '固资编码',
+          showOverflowTooltip: true,
+          width: 100,
+          fixed: 'left',
+          align: 'center'
+        },
+        {
+          prop: 'codeNumber',
+          label: '编码',
+          width: 100,
+          fixed: 'left',
+          showOverflowTooltip: true,
+          align: 'center'
+        },
+        {
+          prop: 'name',
+          width: 120,
+          fixed: 'left',
+          showOverflowTooltip: true,
+          label: '名称',
+          align: 'center'
+        },
+
+        {
+          prop: 'modelType',
+          showOverflowTooltip: true,
+          slot: 'modelType',
+          label: '型号',
+          align: 'center'
+        },
+        {
+          prop: 'specification',
+          showOverflowTooltip: true,
+          slot: 'specification',
+          label: '规格',
+          align: 'center'
+        },
+        {
+          prop: 'sealingTime',
+          showOverflowTooltip: true,
+          label: '封存时间',
+          show: type == 6,
+          align: 'center'
+        },
+        {
+          showOverflowTooltip: true,
+          prop: 'postName',
+          label: '使用部门',
+          align: 'center'
+        },
+        {
+          prop: 'usePerson',
+          showOverflowTooltip: true,
+          label: '使用人',
+          align: 'center'
+        },
+        {
+          prop: 'serviceLife',
+          label: '耐用年限',
+          showOverflowTooltip: true,
+          align: 'center'
+        },
+        {
+          prop: 'alreadyServiceLife',
+          label: '已使用年限',
+          showOverflowTooltip: true,
+          align: 'center'
+        },
+
+        {
+          prop: 'originalValue',
+          label: '原值',
+          slot: 'originalValue',
+          showOverflowTooltip: true,
+          align: 'center'
+        },
+        {
+          prop: 'netWorth',
+          slot: 'netWorth',
+          label: '净值',
+          showOverflowTooltip: true,
+          align: 'center'
+        },
+        {
+          slot: 'scrapValue',
+          prop: 'scrapValue',
+          label: '残值',
+          showOverflowTooltip: true,
+          align: 'center'
+        },
+        {
+          prop: 'manufacturer',
+          label: '生产厂家',
+          showOverflowTooltip: true,
+          align: 'center'
+        },
+
+        {
+          prop: 'pathName',
+          label: '位置',
+          showOverflowTooltip: true,
+          minWidth: 110,
+          formatter: (_row) => {
+            const positionDetail =
+              _row.position &&
+              _row.position.length != 0 &&
+              _row.position[0].detailPosition
+                ? _row.position[0].detailPosition
+                : '-';
+            return _row.deviceLocationName
+              ? _row.deviceLocationName + '-' + positionDetail
+              : '';
+          },
+
+          align: 'center'
+        },
+        {
+          columnKey: 'action',
+          label: '操作',
+          width: 140,
+          align: 'center',
+          resizable: false,
+          fixed: 'right',
+          slot: 'action',
+          showOverflowTooltip: true
+        }
+      ];
+    },
+    async open(row, type) {
+      this.activeComp = 'main';
+
+      this.type = type;
+
+      if (type != 'add') {
+        this.form = JSON.parse(JSON.stringify(row));
+        this.form.disposalType = this.form.disposalType + '';
+        this.form.managementCategory = this.form.managementCategory + '';
+        this.deviceList = this.form.deviceList;
+        this.disposalTypeList = this.form.disposalTypeList;
+      }
+      this.columnsInit(this.form.disposalType);
+      this.visible = true;
+    },
+    del(id) {
+      this.deviceList = this.deviceList.filter((item) => item.id != id);
+    },
+    cancel() {
+      this.form = { ...defForm };
+      this.deviceList = [];
+      this.disposalTypeList = [];
+      console.log(this.deviceList, 'this.deviceList');
+      this.visible = false;
+    },
+
+    addEquipment() {
+      this.$refs.materialAddRef.open(null, null, true, this.deviceList);
+    },
+    // 确定选择
+    confirmChoose(data) {
+      this.deviceList.push(...data);
+    },
+    //选择部门(搜索)
+    searchDeptNodeClick(info, row) {
+      if (info) {
+        const params = { groupId: info };
+        this.getUserList(params);
+        this.form.useDeptName = row.name;
+      } else {
+        this.form.executeGroupId = null;
+      }
+    },
+    // 人员
+    async getUserList(params) {
+      try {
+        let data = { pageNum: 1, size: -1 };
+        // 如果传了参数就是获取巡点检人员数据
+        if (params) {
+          data = Object.assign(data, params);
+        }
+        const res = await getUserPage(data);
+        this.executorList = res.list;
+      } catch (error) {}
+    },
+    // 人员选择
+    changeExecutor(val) {
+      if (val) {
+        this.form.userId = val;
+        this.form.userName = this.executorList.filter(
+          (item) => item.id === val
+        )[0].name;
+      }
+    },
+    /* 保存编辑 */
+    async save() {
+      if (this.deviceList.length == 0) {
+        this.$message.error('请选择处置对象!');
+        return;
+      }
+
+      this.form.deviceList = this.deviceList;
+      this.form.disposalTypeList = this.disposalTypeList;
+      this.$refs.form.validate(async (valid) => {
+        if (valid) {
+          this.loading = true;
+          save(this.form)
+            .then((res) => {
+              this.loading = false;
+              this.$message.success('成功');
+              this.cancel();
+              this.$emit('refresh');
+            })
+            .catch((e) => {
+              this.loading = false;
+            });
+        }
+      });
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+.basic-details-title {
+  margin: 10px 0;
+}
+.title {
+  font-size: 16px;
+  line-height: 45px;
+}
+.add-product {
+  width: 100%;
+  display: flex;
+  align-items: center;
+  // justify-content: flex-end;
+  font-size: 30px;
+  color: #1890ff;
+  margin: 10px 0;
+  cursor: pointer;
+}
+</style>

+ 129 - 0
src/views/equipmentLease/components/search.vue

@@ -0,0 +1,129 @@
+<!-- 搜索表单 -->
+<template>
+  <el-form
+    label-width="90px"
+    class="ele-form-search"
+    @keyup.enter.native="search"
+    @submit.native.prevent
+  >
+    <el-row :gutter="15">
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="处置方式:">
+          <DictSelection
+              dictName="设备处置方式"
+              v-model="where.type"
+            ></DictSelection>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="编码:">
+          <el-input
+            clearable
+            v-model="where.code"
+            placeholder="请输入"
+          />
+        </el-form-item>
+      </el-col>
+
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="名称:">
+          <el-input
+            clearable
+            v-model="where.name"
+            placeholder="请输入"
+          />
+        </el-form-item>
+      </el-col>
+
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="固资编码:">
+          <el-input
+            clearable
+            v-model="where.fixCode"
+            placeholder="请输入"
+          />
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="物品名称:">
+          <el-input
+            clearable
+            v-model="where.categoryName"
+            placeholder="请输入"
+          />
+        </el-form-item>
+      </el-col>
+
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="组织机构:">
+          <auth-selection
+            v-model="where.deptIds"
+            style="width: 100%"
+          ></auth-selection>
+        </el-form-item>
+      </el-col>
+
+      <el-col
+        style="display: flex; justify-content: flex-end"
+        v-bind="styleResponsive ? { lg: 24, md: 24 } : { span: 24 }"
+      >
+        <el-form-item label-width="0px">
+          <el-button
+            type="primary"
+            icon="el-icon-search"
+            class="ele-btn-icon"
+            @click="search"
+          >
+            查询
+          </el-button>
+          <el-button @click="reset" icon="el-icon-refresh-left" type="primary"
+            >重置</el-button
+          >
+        </el-form-item>
+      </el-col>
+    </el-row>
+  </el-form>
+</template>
+
+<script>
+export default {
+  props: [],
+  data() {
+    // 默认表单数据
+    const defaultWhere = {
+      code: '',
+      name: '',
+      fixCode:'',
+      type:'',
+      categoryName: '',
+      deptIds: '',
+      
+    };
+    return {
+      // 表单数据
+      where: { ...defaultWhere }
+    };
+  },
+  computed: {
+    // 是否开启响应式布局
+    styleResponsive() {
+      return this.$store.state.theme.styleResponsive;
+    }
+  },
+  watch: {},
+  created() {},
+  methods: {
+    /* 搜索 */
+    search() {
+      this.$emit('search', this.where);
+    },
+    /*  重置 */
+    reset() {
+      this.where = { ...this.defaultWhere };
+      this.search();
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 252 - 0
src/views/equipmentLease/index.vue

@@ -0,0 +1,252 @@
+<template>
+  <div class="ele-body">
+    <el-card shadow="never" v-loading="loading">
+      <equipment-search
+        @search="reload"
+        :networkCounts="networkCounts"
+        ref="search"
+      />
+      <!-- 数据表格 -->
+      <ele-pro-table
+        ref="table"
+        :columns="columns"
+        :datasource="datasource"
+        height="calc(100vh - 400px)"
+        tool-class="ele-toolbar-form"
+        cache-key="systemOrgUserTable"
+      >
+        <!-- 表头工具栏 -->
+        <template v-slot:toolbar="{ row }">
+          <el-button
+            size="small"
+            type="primary"
+            icon="el-icon-plus"
+            class="ele-btn-icon"
+            @click="open(null, 'add')"
+          >
+            新建
+          </el-button>
+
+          <!-- <el-button size="small" class="ele-btn-icon" @click="handlDelete"
+          >删除</el-button
+        >
+        <el-button
+          size="small"
+          @click="moveTo(checkRadioData, 'move')"
+          :disabled="checkRadioData.length == 0"
+          class="ele-btn-icon"
+          >移动到</el-button
+        > -->
+        </template>
+        <!-- 编码列 -->
+        <template v-slot:code="{ row }">
+          <el-link
+            type="primary"
+            :underline="false"
+            @click="open(row, 'detail')"
+          >
+            {{ row.code }}
+          </el-link>
+        </template>
+        <template v-slot:disposalType="{ row }">
+          {{ getDictValue('设备处置方式', row.disposalType + '') }}
+        </template>
+        <!-- 操作列 -->
+        <template v-slot:action="{ row }">
+          <el-link
+            type="primary"
+            :underline="false"
+            icon="el-icon-edit"
+            v-if="row.approvalStatus == 0"
+            @click="submit(row)"
+          >
+            提交
+          </el-link>
+          <el-link
+            type="primary"
+            :underline="false"
+            icon="el-icon-edit"
+            v-if="row.approvalStatus == 0"
+            @click="open(row, 'edit')"
+          >
+            编辑
+          </el-link>
+          <el-popconfirm
+            class="ele-action"
+            title="确定要删除吗?"
+            @confirm="remove(row)"
+            v-if="row.approvalStatus == 0"
+          >
+            <template v-slot:reference>
+              <el-link type="danger" :underline="false" icon="el-icon-delete">
+                删除
+              </el-link>
+            </template>
+          </el-popconfirm>
+        </template>
+      </ele-pro-table>
+    </el-card>
+
+    <edit ref="edit" @refresh="reload"></edit>
+  </div>
+</template>
+
+<script>
+import { getList, remove,submit } from '@/api/equipmentDisposal/index.js';
+
+import dictMixins from '@/mixins/dictMixins';
+import equipmentSearch from './components/search.vue';
+import edit from './components/edit';
+
+export default {
+  mixins: [dictMixins],
+  components: {
+    equipmentSearch,
+    edit
+  },
+
+  data() {
+    return {
+      loading: false,
+      // 表格列配置
+      columns: [
+        // {
+        //   width: 45,
+        //   type: 'selection',
+        //   columnKey: 'selection',
+        //   align: 'center'
+        // },
+        {
+          columnKey: 'index',
+          type: 'index',
+          label: '序号',
+          width: 55,
+          align: 'center',
+          showOverflowTooltip: true,
+          fixed: 'left'
+        },
+        {
+          prop: 'disposalType',
+          slot: 'disposalType',
+          align: 'center',
+          label: '处置方式',
+          showOverflowTooltip: true
+        },
+
+        {
+          columnKey: 'code',
+          align: 'center',
+          prop: 'code',
+          slot: 'code',
+          label: '编码',
+          showOverflowTooltip: true
+        },
+        {
+          prop: 'name',
+          align: 'center',
+          label: '名称',
+          showOverflowTooltip: true
+        },
+        {
+          prop: 'fixCode',
+          align: 'center',
+          label: '固资编码',
+          showOverflowTooltip: true,
+          formatter: (row, column, cellValue) => {
+            return row.deviceList.map((item) => item.fixCode).toString();
+          }
+        },
+        {
+          align: 'center',
+          label: '物品名称',
+          showOverflowTooltip: true,
+          formatter: (row, column, cellValue) => {
+            return row.deviceList.map((item) => item.name).toString();
+          }
+        },
+        {
+          prop: 'createUserName',
+          align: 'center',
+          label: '创建人'
+        },
+        {
+          prop: 'createTime',
+          align: 'center',
+          label: '创建时间'
+        },
+        {
+          prop: 'approvalStatus',
+          align: 'center',
+          label: '状态',
+          showOverflowTooltip: true,
+          formatter: (row, column, cellValue) => {
+            return cellValue == 0
+              ? '草稿'
+              : cellValue == 1
+              ? '审核中'
+              : '审核通过';
+          }
+        },
+
+        {
+          columnKey: 'action',
+          slot: 'action',
+          align: 'center',
+          label: '操作',
+          width: 240,
+          fixed: 'right'
+        }
+      ],
+      networkCounts: {},
+      checkRadioData: [],
+      QRvisible: false
+    };
+  },
+  computed: {},
+  created() {
+    this.requestDict('设备处置方式');
+  },
+  methods: {
+    /* 表格数据源 */
+    datasource({ page, limit, where }) {
+      console.log('------reload-------');
+      // this.getNetWork(page, limit, where, order);
+      return getList({
+        ...where,
+        pageNum: page,
+        size: limit
+      });
+    },
+
+    /* 刷新表格 */
+    reload(where) {
+      this.$refs.table.reload({ pageNum: 1, where: where });
+    },
+    open(row, type) {
+      this.$refs.edit.open(row, type);
+    },
+    submit(row) {
+      submit({businessId:row.id}).then((res) => {
+        this.$message.success('提交成功!');
+        this.reload();
+      });
+    },
+    remove(row) {
+      remove([row.id]).then((res) => {
+        this.$message.success('删除成功!');
+        this.reload();
+      });
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+@media print {
+  #printSection {
+    font-size: 34px;
+    span {
+      font-size: 34px;
+    }
+  }
+}
+</style>

+ 6 - 2
src/views/ledgerAssets/boat/components/boat-list.vue

@@ -71,7 +71,7 @@
   import printSr from '@/views/ledgerAssets/components/printSr';
   import printTg from '@/views/ledgerAssets/components/printTg';
   import { getByCode } from '@/api/system/dictionary-data';
-  import { businessStatus, networkStatus } from '@/utils/dict/warehouse';
+  import { businessStatus, networkStatus,sourceStatus } from '@/utils/dict/warehouse';
   import BoatSearch from './boat-search.vue';
   import {
     getBoatList,
@@ -188,7 +188,11 @@
             prop: 'source',
             label: '生命周期',
             showOverflowTooltip: true,
-            minWidth: 110
+            minWidth: 110,
+            formatter:(_row)=>{
+              return sourceStatus[_row.lifeCycle]
+
+            }
           },
           {
             prop: 'level',

+ 17 - 7
src/views/ledgerAssets/boat/components/boat-search.vue

@@ -52,12 +52,14 @@
       </el-col>
       <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
         <el-form-item label="生命周期:" label-width="100px">
-          <DictSelection
-            dictName="生命周期"
-            clearable
-            v-model="where.runStatus"
-          >
-          </DictSelection>
+          <el-select v-model="where.lifeCycle" size="small" style="width: 100%">
+            <el-option
+              v-for="(item) in sourceStatus"
+              :value="item.code"
+              :label="item.label"
+              :key="item.code"
+            ></el-option>
+          </el-select>
         </el-form-item>
       </el-col>
     </el-row>
@@ -141,9 +143,11 @@
   </el-form>
 </template>
 
+
 <script>
   import { getByCode } from '@/api/system/dictionary-data';
-  import { businessStatus } from '@/utils/dict/warehouse';
+  import { businessStatus ,sourceStatus} from '@/utils/dict/warehouse';
+
   import DeptSelect from '@/components/CommomSelect/dept-select.vue';
   export default {
     props: ['networkCounts'],
@@ -163,6 +167,12 @@
       };
       return {
         assetLevel: [],
+        sourceStatus:Object.keys(sourceStatus).map(key=>{
+          return {
+            code:key,
+            label:sourceStatus[key]
+          }
+        }),
         businessStatus,
         // 表单数据
         where: { ...defaultWhere },

+ 7 - 2
src/views/ledgerAssets/equipment/components/equipment-list.vue

@@ -97,7 +97,8 @@
   import printSr from '@/views/ledgerAssets/components/printSr';
   import printTg from '@/views/ledgerAssets/components/printTg';
   import { getByCode } from '@/api/system/dictionary-data';
-  import { businessStatus, networkStatus } from '@/utils/dict/warehouse';
+  import { businessStatus, networkStatus,sourceStatus } from '@/utils/dict/warehouse';
+
   import EquipmentSearch from './equipment-search.vue';
   import DialogMoveto from './DialogMoveTo.vue';
   import {
@@ -232,7 +233,11 @@
             prop: 'source',
             label: '生命周期',
             showOverflowTooltip: true,
-            minWidth: 110
+            minWidth: 110,
+            formatter:(_row)=>{
+                 return sourceStatus[_row.lifeCycle]
+            }
+            
           },
           {
             prop: 'level',

+ 3 - 3
src/views/ledgerAssets/equipment/components/equipment-search.vue

@@ -55,10 +55,10 @@
           <!-- <DictSelection
             dictName="生命周期"
             clearable
-            v-model="where.runStatus"
+            v-model="where.lifeCycle"
           >
           </DictSelection> -->
-          <el-select v-model="where.runStatus" size="small" style="width: 100%">
+          <el-select v-model="where.lifeCycle" size="small" style="width: 100%">
             <el-option
               v-for="(item) in sourceStatus"
               :value="item.code"
@@ -166,7 +166,7 @@
         networkStatus: '',
         status: '',
         fixCode: '',
-        runStatus: '',
+        lifeCycle: '',
         module: '',
         space: '',
         usePostId: ''

+ 6 - 2
src/views/ledgerAssets/material/components/material-list.vue

@@ -60,7 +60,7 @@
 
 <script>
   import { getByCode } from '@/api/system/dictionary-data';
-  import { businessStatus, networkStatus } from '@/utils/dict/warehouse';
+  import { businessStatus, networkStatus ,sourceStatus} from '@/utils/dict/warehouse';
   import MaterialSearch from './material-search.vue';
   import {
     getBoatList,
@@ -179,7 +179,11 @@
             prop: 'source',
             label: '生命周期',
             showOverflowTooltip: true,
-            minWidth: 110
+            minWidth: 110,
+            formatter:(_row)=>{
+              return sourceStatus[_row.lifeCycle]
+
+            }
           },
           {
             prop: 'level',

+ 6 - 2
src/views/ledgerAssets/meter/components/equipment-list.vue

@@ -95,7 +95,7 @@
   import printSr from '@/views/ledgerAssets/components/printSr';
   import printTg from '@/views/ledgerAssets/components/printTg';
   import { getByCode } from '@/api/system/dictionary-data';
-  import { businessStatus, networkStatus } from '@/utils/dict/warehouse';
+  import { businessStatus, networkStatus,sourceStatus } from '@/utils/dict/warehouse';
   import EquipmentSearch from './equipment-search.vue';
   import DialogMoveto from './DialogMoveTo.vue';
   import {
@@ -232,7 +232,11 @@
             prop: 'source',
             label: '生命周期',
             showOverflowTooltip: true,
-            minWidth: 110
+            minWidth: 110,
+            formatter:(_row)=>{
+              return sourceStatus[_row.lifeCycle]
+
+            }
           },
           {
             prop: 'level',

+ 7 - 2
src/views/ledgerAssets/mould/components/mould-list.vue

@@ -96,7 +96,7 @@
   import printSr from '@/views/ledgerAssets/components/printSr';
   import printTg from '@/views/ledgerAssets/components/printTg';
   import { getByCode } from '@/api/system/dictionary-data';
-  import { businessStatus, networkStatus } from '@/utils/dict/warehouse';
+  import { businessStatus, networkStatus,sourceStatus } from '@/utils/dict/warehouse';
   import MouldSearch from './mould-search.vue';
   import { getAssetList, downloadAsset } from '@/api/ledgerAssets';
   import dictMixins from '@/mixins/dictMixins';
@@ -207,7 +207,12 @@
             prop: 'source',
             label: '生命周期',
             showOverflowTooltip: true,
-            minWidth: 110
+            minWidth: 110,
+            formatter:(_row)=>{
+              return sourceStatus[_row.lifeCycle]
+
+            }
+            
           },
           {
             prop: 'level',

+ 6 - 2
src/views/ledgerAssets/office/components/data-list.vue

@@ -96,7 +96,7 @@
   import printSr from '@/views/ledgerAssets/components/printSr';
   import printTg from '@/views/ledgerAssets/components/printTg';
   import { getByCode } from '@/api/system/dictionary-data';
-  import { businessStatus, networkStatus } from '@/utils/dict/warehouse';
+  import { businessStatus, networkStatus,sourceStatus } from '@/utils/dict/warehouse';
   import UserSearch from './user-search.vue';
   import { getAssetList, downloadAsset } from '@/api/ledgerAssets';
   import dictMixins from '@/mixins/dictMixins';
@@ -223,7 +223,11 @@
             prop: 'source',
             label: '生命周期',
             showOverflowTooltip: true,
-            minWidth: 110
+            minWidth: 110,
+            formatter:(_row)=>{
+              return sourceStatus[_row.lifeCycle]
+
+            }
           },
           {
             prop: 'level',

+ 6 - 2
src/views/ledgerAssets/sparepart/components/sparepart-list.vue

@@ -111,7 +111,7 @@
   import printSr from '@/views/ledgerAssets/components/printSr';
   import printTg from '@/views/ledgerAssets/components/printTg';
   import { getByCode } from '@/api/system/dictionary-data';
-  import { businessStatus, networkStatus } from '@/utils/dict/warehouse';
+  import { businessStatus, networkStatus,sourceStatus } from '@/utils/dict/warehouse';
   import SparepartSearch from './sparepart-search.vue';
   import { getAssetList, importCategorySparePart } from '@/api/ledgerAssets';
   import dictMixins from '@/mixins/dictMixins';
@@ -228,7 +228,11 @@
             prop: 'source',
             label: '生命周期',
             showOverflowTooltip: true,
-            minWidth: 110
+            minWidth: 110,
+            formatter:(_row)=>{
+              return sourceStatus[_row.lifeCycle]
+
+            }
           },
           {
             prop: 'level',

+ 6 - 2
src/views/ledgerAssets/turnoverCar/components/turnovercar-list.vue

@@ -84,7 +84,7 @@
   import printSr from '@/views/ledgerAssets/components/printSr';
   import printTg from '@/views/ledgerAssets/components/printTg';
   import { getByCode } from '@/api/system/dictionary-data';
-  import { businessStatus, networkStatus } from '@/utils/dict/warehouse';
+  import { businessStatus, networkStatus,sourceStatus } from '@/utils/dict/warehouse';
   import TurnovercarSearch from './turnovercar-search.vue';
   import { getAssetList, downloadAsset } from '@/api/ledgerAssets';
   import dictMixins from '@/mixins/dictMixins';
@@ -198,7 +198,11 @@
             prop: 'source',
             label: '生命周期',
             showOverflowTooltip: true,
-            minWidth: 110
+            minWidth: 110,
+            formatter:(_row)=>{
+              return sourceStatus[_row.lifeCycle]
+
+            }
           },
           {
             prop: 'level',

+ 6 - 2
src/views/ledgerAssets/turnoverDisks/components/equipment-list.vue

@@ -96,7 +96,7 @@
   import printSr from '@/views/ledgerAssets/components/printSr';
   import printTg from '@/views/ledgerAssets/components/printTg';
   import { getByCode } from '@/api/system/dictionary-data';
-  import { businessStatus, networkStatus } from '@/utils/dict/warehouse';
+  import { businessStatus, sourceStatus } from '@/utils/dict/warehouse';
   import EquipmentSearch from './equipment-search.vue';
   import DialogMoveto from './DialogMoveTo.vue';
   import {
@@ -217,7 +217,11 @@
             prop: 'source',
             label: '生命周期',
             showOverflowTooltip: true,
-            minWidth: 110
+            minWidth: 110,
+            formatter:(_row)=>{
+              return sourceStatus[_row.lifeCycle]
+
+            }
           },
           {
             prop: 'level',

+ 5 - 2
src/views/maintenance/components/MaterialAdd.vue

@@ -80,6 +80,7 @@
           label: 'name'
         },
         type: null,
+        disposalType:'',
         // 表格列配置
         columns: [
           {
@@ -158,13 +159,15 @@
           pageNum: page,
           size: limit,
           categoryLevelId: this.categoryLevelId,
-          rootCategoryLevelId: this.rootId
+          rootCategoryLevelId: this.rootId,
+          disposalType:this.disposalType
         });
         console.log('res---------', res);
         this.categoryId = res.list[0]?.categoryId;
         return res;
       },
-      open(ruleIdList, ruleIdListIndex, isAlone, data) {
+      open(ruleIdList, ruleIdListIndex, isAlone, data,disposalType) {
+        this.disposalType=disposalType
         console.log(ruleIdList);
         console.log(ruleIdListIndex);
         let list = [];

+ 1 - 1
src/views/sparePartsApply/index.vue

@@ -44,7 +44,7 @@
         <template v-slot:status="{ row }">
           {{row.status==0?'审核中':'审核通过'}}
         </template>
-        <template v-slot:degutailList="{ row }">
+        <template v-slot:detailList="{ row }">
           {{ row.detailList.map((item) => item.categoryName).toString() }}
         </template>
         <template v-slot:action="{ row }">