From 9bb18084093bdc0dabb614420d09e54c710d9b46 Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期二, 28 十一月 2023 14:34:45 +0800
Subject: [PATCH] feat: 出入库明细对接

---
 admin-web/src/views/stock/procure/purchaseOrder/index.vue         |    2 
 admin-web/src/views/departmentitem/itemret/returnNote/index.vue   |    2 
 admin-web/src/views/stock/transfer/transferissue/index.vue        |    2 
 admin-web/src/utils/settingIplatform.js                           |   22 ---
 admin-web/src/views/stock/transfer/transferApplication/index.vue  |    2 
 /dev/null                                                         |   45 ---------
 admin-web/src/views/stock/procure/purchaseOrder/edit.vue          |    6 -
 admin-web/src/utils/stockType.js                                  |    2 
 admin-web/public/index.html                                       |    3 
 admin-web/src/views/departmentitem/itemscr/scrapping/index.vue    |    2 
 admin-web/src/views/stock/accessStock/outbound/index.vue          |   71 +++++++------
 admin-web/src/views/stock/scrap/itemScrapping/index.vue           |    2 
 admin-web/src/components/mySearch/SearchItem.vue                  |   13 +
 admin-web/src/views/stock/accessStock/outboundDetails/index.vue   |   86 ++++++++++++----
 admin-web/src/views/departmentitem/itemdis/distribution/index.vue |    2 
 admin-web/public/static/config.js                                 |   17 ---
 16 files changed, 123 insertions(+), 156 deletions(-)

diff --git a/admin-web/public/index.html b/admin-web/public/index.html
index 729a200..1172a30 100644
--- a/admin-web/public/index.html
+++ b/admin-web/public/index.html
@@ -11,11 +11,10 @@
     <title><%= webpackConfig.name %></title>
   </head>
   <body>
+    <script type="text/javascript" src="<%= BASE_URL %>static/config.js"></script>
     <script src="<%= BASE_URL %>static/tinymce4.7.5/tinymce.min.js"></script>
     <script src="<%= BASE_URL %>static/js/jquery.min.js"></script>
     <script src="<%= BASE_URL %>static/js/reconnecting-websocket.js"></script>
-    <script src="<%= BASE_URL %>static/js/niuniucapture.js"></script>
-    <script src="<%= BASE_URL %>static/js/capturewrapper.js"></script>
     <script  src="https://map.qq.com/api/gljs?v=1.exp&key=PGNBZ-XZ7C3-MPE34-OF2VP-7MRH6-BOFUG"></script>
     <div id="app"></div>
     <!-- built files will be auto injected -->
diff --git a/admin-web/public/static/config.js b/admin-web/public/static/config.js
index 78c156c..2595dcf 100644
--- a/admin-web/public/static/config.js
+++ b/admin-web/public/static/config.js
@@ -1,25 +1,12 @@
 
-// 璇锋眰鎺ュ彛鍦板潃 濡傛灉娌℃湁閰嶇疆鑷姩鑾峰彇褰撳墠缃戝潃璺緞
-const VUE_APP_API_URL = process.env.VUE_APP_BASE_API || `${location.origin}`;
-const VUE_APP_WS_URL =
-  process.env.VUE_APP_WS_URL || (location.protocol === 'https' ? 'wss' : 'ws') + ':' + location.hostname;
-
 const SettingIplatform = {
   // 鏈嶅姟鍣ㄥ湴鍧�
-  // 鏈嶅姟鍣ㄥ湴鍧�
-  httpUrl: VUE_APP_API_URL,
   // 涓婁紶璺緞
   ftpUrl: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙�
-  // ftpUrl:'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯,
-// 鎺ュ彛璇锋眰鍦板潃
-// apiBaseURL: 'http://116.198.39.83:8082/progress', // 姝e紡
-  // apiBaseURL: 'http://172.16.60.90:8082/progress',//寮�鍙�
+  // 鎺ュ彛璇锋眰鍦板潃
   apiBaseURL: 'http://172.16.20.2:8083/lowConsum',//寮�鍙�
   // apiBaseURL: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙�
-// apiBaseURL: 'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯,
-  // socket杩炴帴
-  wsSocketUrl: VUE_APP_WS_URL,
-  debug: true //璋冭瘯寮�鍏�  true鏃朵細杈撳嚭璇锋眰鏃ュ織
+  debug: false //璋冭瘯寮�鍏�  true鏃朵細杈撳嚭璇锋眰鏃ュ織
 };
 
 export default SettingIplatform;
diff --git a/admin-web/src/components/mySearch/SearchItem.vue b/admin-web/src/components/mySearch/SearchItem.vue
index fa2580b..1240b54 100644
--- a/admin-web/src/components/mySearch/SearchItem.vue
+++ b/admin-web/src/components/mySearch/SearchItem.vue
@@ -4,7 +4,7 @@
     <el-input
       :type="item.inputType || 'text'"
       v-if="item.type === 'text'"
-      :placeholder="item.placeholder || ''"
+      :placeholder="item.placeholder || '璇疯緭鍏�'"
       @change="(e) => inputChange(e)"
       :clearable="true"
       v-model="val"
@@ -15,6 +15,7 @@
     <el-cascader
       v-model="val"
       v-if="item.type === 'cascader'"
+      :placeholder="item.placeholder || '璇烽�夋嫨'"
       :options="item.options"
       :props="item.optionsConfig.props||{ checkStrictly: true,emitPath: false,value: 'id' }"
       :show-all-levels="false"
@@ -26,7 +27,7 @@
     <!-- 涓嬫媺-->
     <el-select
       v-if="item.type === 'select'"
-      :placeholder="item.placeholder || ''"
+      :placeholder="item.placeholder || '璇烽�夋嫨'"
       v-model="val"
       filterable
       :multiple="item.multiple || false"
@@ -54,7 +55,7 @@
     <!--鏃堕棿-->
     <el-time-select
       v-if="item.type === 'time-picker'"
-      :placeholder="item.placeholder || ''"
+      :placeholder="item.placeholder || '璇烽�夋嫨'"
       v-model="val"
       :clearable="true"
       style="width: 150px"
@@ -66,6 +67,7 @@
       v-model="val"
       type="year"
       :clearable="true"
+      :placeholder="item.placeholder || '璇烽�夋嫨'"
       style="width: 150px"
       :value-format="item.format?item.format:'yyyy'"
       @change="(v) => panelChange(v, 'yyyy')"
@@ -76,6 +78,7 @@
       v-model="val"
       type="month"
       :clearable="true"
+      :placeholder="item.placeholder || '璇烽�夋嫨'"
       style="width: 150px"
       :value-format="item.format?item.format:'yyyyMM'"
       @change="(v) => panelChange(v, 'yyyy-MM')"
@@ -86,6 +89,7 @@
       v-model="val"
       type="date"
       :clearable="true"
+      :placeholder="item.placeholder || '璇烽�夋嫨'"
       style="width: 150px"
       :value-format="item.format?item.format:'yyyyMMdd'"
       @change="(v) => panelChange(v, 'yyyy-MM-dd')"
@@ -96,6 +100,7 @@
       v-model="val"
       type="datetime"
       :clearable="true"
+      :placeholder="item.placeholder || '璇烽�夋嫨'"
       style="width: 150px"
       format="yyyy-MM-dd HH:mm:ss"
       value-format="yyyy-MM-dd HH:mm:ss"
@@ -106,7 +111,7 @@
       v-if="item.type === 'datetimerange-picker'"
       v-model="val"
       style="width: 378px"
-      :placeholder="item.placeholder || ''"
+      :placeholder="item.placeholder || '璇烽�夋嫨'"
       type="datetimerange"
       :pickerOptions='pickerOptions'
       :disabled="item.disabled"
diff --git a/admin-web/src/utils/settingIplatform.js b/admin-web/src/utils/settingIplatform.js
index 3e3b152..f568428 100644
--- a/admin-web/src/utils/settingIplatform.js
+++ b/admin-web/src/utils/settingIplatform.js
@@ -1,24 +1,10 @@
 
-// 璇锋眰鎺ュ彛鍦板潃 濡傛灉娌℃湁閰嶇疆鑷姩鑾峰彇褰撳墠缃戝潃璺緞
-const VUE_APP_API_URL = process.env.VUE_APP_BASE_API || `${location.origin}`;
-const VUE_APP_WS_URL =
-  process.env.VUE_APP_WS_URL || (location.protocol === 'https' ? 'wss' : 'ws') + ':' + location.hostname;
-
+import config from '../../public/static/config.js'
 const SettingIplatform = {
-  // 鏈嶅姟鍣ㄥ湴鍧�
-  httpUrl: VUE_APP_API_URL,
   // 涓婁紶璺緞
-  ftpUrl: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙�
-  // ftpUrl:'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯,
-// 鎺ュ彛璇锋眰鍦板潃
-// apiBaseURL: 'http://116.198.39.83:8082/progress', // 姝e紡
-  // apiBaseURL: 'http://172.16.60.90:8082/progress',//寮�鍙�
-  // apiBaseURL: 'http://172.16.60.175:8083/lowConsum',//寮�鍙�
-  apiBaseURL: 'http://172.16.20.2:8083/lowConsum',//寮�鍙�
-  // apiBaseURL: 'https://yqzx.jinmingyuan.com/lowConsum',//寮�鍙�
-// apiBaseURL: 'https://jmy.jinmingyuan.com/progress',// 娴嬭瘯,
-  // socket杩炴帴
-  wsSocketUrl: VUE_APP_WS_URL,
+  ftpUrl: config.ftpUrl,
+  // 鎺ュ彛璇锋眰鍦板潃
+  apiBaseURL: config.apiBaseURL,
 };
 
 export default SettingIplatform;
diff --git a/admin-web/src/utils/stockType.js b/admin-web/src/utils/stockType.js
index e721978..16a5eef 100644
--- a/admin-web/src/utils/stockType.js
+++ b/admin-web/src/utils/stockType.js
@@ -1,6 +1,6 @@
 function stockType(row) {
   let result = '';
-  let arr = ['閲囪喘鍏ュ簱', '璋冩嫧', '鍏朵粬鍑哄簱', '閮ㄩ棬鍒嗗彂', '鎶ュ簾鍑哄簱', '閮ㄩ棬鐗╁搧鍥為��浠撳簱', '鐗╁搧鐩樼偣'];
+  let arr = ['閲囪喘鍏ュ簱', '璋冩嫧', '鍏朵粬鍑哄簱', '閮ㄩ棬鍒嗗彂', '鎶ュ簾鍑哄簱', '鐗╁搧閫�鍥�', '鐗╁搧鐩樼偣'];
   if (row.businessType == 7) {
     if (row.thisType == 1) {
       result = '鐩樼泩鍏ュ簱';
diff --git a/admin-web/src/views/departmentitem/itemdis/distribution/index.vue b/admin-web/src/views/departmentitem/itemdis/distribution/index.vue
index d94c697..64cf780 100644
--- a/admin-web/src/views/departmentitem/itemdis/distribution/index.vue
+++ b/admin-web/src/views/departmentitem/itemdis/distribution/index.vue
@@ -13,7 +13,7 @@
               <my-button name="鐗╁搧鍒嗗彂" @click="handleAdd" site="tools" size="medium" icon="el-icon-edit-outline" />
               <my-button name="瀵煎叆" @click="importSetting.dialogShow = true" site="tools" size="medium" />
             </div>
-            <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading">
+            <div :style="{ 'overflow-y': 'auto', height: `calc(100vh - 320px)` }" v-loading="loading">
               <el-row v-if="list.length" class="card" :gutter="5">
                 <el-col v-for="(item, index) in list" :key="index" class="cm-item">
                   <el-card class="card-data">
diff --git a/admin-web/src/views/departmentitem/itemret/returnNote/index.vue b/admin-web/src/views/departmentitem/itemret/returnNote/index.vue
index 9c9e512..a910caf 100644
--- a/admin-web/src/views/departmentitem/itemret/returnNote/index.vue
+++ b/admin-web/src/views/departmentitem/itemret/returnNote/index.vue
@@ -12,7 +12,7 @@
             <div class="table-tool-bar" style="margin-bottom: 15px;">
               <my-button name="鏂板" @click="handleAdd" site="tools" size="medium" />
             </div>
-            <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading">
+            <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }" v-loading="loading">
               <el-row v-if="list.length" class="card" :gutter="5">
                 <el-col v-for="(item, index) in list" :key="index" class="cm-item">
                   <el-card class="card-data">
diff --git a/admin-web/src/views/departmentitem/itemscr/scrapping/index.vue b/admin-web/src/views/departmentitem/itemscr/scrapping/index.vue
index 77fadac..d5a05bc 100644
--- a/admin-web/src/views/departmentitem/itemscr/scrapping/index.vue
+++ b/admin-web/src/views/departmentitem/itemscr/scrapping/index.vue
@@ -12,7 +12,7 @@
             <div class="table-tool-bar" style="margin-bottom: 15px;">
               <my-button name="鏂板" @click="handleAdd" site="tools" size="medium" />
             </div>
-            <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading">
+            <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }" v-loading="loading">
               <el-row v-if="list.length" class="card" :gutter="5">
                 <el-col v-for="(item, index) in list" :key="index" class="cm-item">
                   <el-card class="card-data">
diff --git a/admin-web/src/views/projectConfig/buildPlan/detail.vue b/admin-web/src/views/projectConfig/buildPlan/detail.vue
deleted file mode 100644
index e215bb9..0000000
--- a/admin-web/src/views/projectConfig/buildPlan/detail.vue
+++ /dev/null
@@ -1,142 +0,0 @@
-<template>
-  <win-lg :title="setting.title" @close="close" :width="'800px'">
-    <el-table
-      v-loading="loading"
-      border
-      height="calc(100vh - 400px)"
-      :span-method="spanMethod"
-      :data="tableData"
-      style="width: 100%">
-      <el-table-column
-        prop="stageName"
-        align="center"
-        label="闃舵"/>
-      <el-table-column
-        prop="nodeName"
-        align="center"
-        label="鑺傜偣"/>
-      <el-table-column
-        prop="nodeTimeStart"
-        align="center"
-        label="鑷」鐩紑濮嬬n澶�"
-        width="130"/>
-      <el-table-column
-        prop="nodeTimeDays"
-        align="center"
-        label="鎸佺画澶╂暟"
-        width="80"/>
-      <el-table-column
-        align="center"
-        label="瀹屾垚鍚庢彁閱�"
-        width="95">
-        <template slot-scope="{row}">
-          {{ row.completeNotifyStatus === 1 ? '鏄�' : '鍚�' }}
-        </template>
-      </el-table-column>
-      <el-table-column
-        align="center"
-        label="鎻愰啋鑺傜偣"
-        width="240">
-        <template slot-scope="{row,$index}">
-          <div>闃舵锛歿{ row.notifyStage.join("銆�") }}</div>
-          <div>鑺傜偣锛歿{ row.notifyNode.join("銆�") }}</div>
-        </template>
-      </el-table-column>
-      <el-table-column
-        align="center"
-        label="涓存湡棰勮"
-        width="80">
-        <template slot-scope="{row}">
-          {{ row.warnNeed === 1 ? '鏄�' : '鍚�' }}
-        </template>
-      </el-table-column>
-      <el-table-column
-        align="center"
-        label="闄勪欢蹇呬紶"
-        width="80">
-        <template slot-scope="{row}">
-          {{ row.fileNeed === 1 ? '鏄�' : '鍚�' }}
-        </template>
-      </el-table-column>
-    </el-table>
-    <div slot="footer" align="center" class="dialog-footer">
-      <my-button name="鍙栨秷" site="form" @click="close"/>
-    </div>
-  </win-lg>
-</template>
-
-<script>
-import winLg from '@/components/win/win-lg'
-import {getStageNode} from "@/api/projectConfig/buildPlanNode";
-import myButton from "@/components/myButton/myButton";
-
-export default {
-  name: 'detail',
-  components: {winLg, myButton},
-  props: {
-    // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍
-    // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦
-    // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁
-    setting: {
-      type: Object,
-      default: () => {
-      }
-    }
-  },
-  data() {
-    return {
-      loading: false,
-      tableData: [],
-      spanArr: [],
-      pos: 0
-    }
-  },
-  mounted() {
-    this.loading = true
-    getStageNode({id: this.setting.id}).then(res => {
-      this.loading = false
-      this.tableData = res
-      this.getSpanArr(res)
-    }).catch(() => {
-      this.loading = false
-    })
-  },
-  methods: {
-    close() {
-      this.$emit('close')
-    },
-    spanMethod({row, column, rowIndex, columnIndex}) {
-      if (columnIndex === 0) {
-        const rowspan = this.spanArr[rowIndex]
-        const colspan = rowspan > 0 ? 1 : 0
-        return {
-          rowspan, //琛�
-          colspan //鍒�
-        };
-      }
-    },
-    getSpanArr(data) {
-      this.spanArr = [];
-      for (let i = 0; i < data.length; i++) {
-        if (i === 0) {
-          this.spanArr.push(1);
-          this.pos = 0;
-        } else {
-          // 鍒ゆ柇褰撳墠鍏冪礌涓庝笂涓�涓厓绱犳槸鍚︾浉鍚�
-          if (data[i].id === data[i - 1].id && data[i].id) {
-            this.spanArr[this.pos] += 1;
-            this.spanArr.push(0);
-          } else {
-            this.spanArr.push(1);
-            this.pos = i;
-          }
-        }
-      }
-    },
-  }
-}
-</script>
-
-<style scoped>
-
-</style>
diff --git a/admin-web/src/views/projectConfig/buildPlan/edit.vue b/admin-web/src/views/projectConfig/buildPlan/edit.vue
deleted file mode 100644
index 6087c95..0000000
--- a/admin-web/src/views/projectConfig/buildPlan/edit.vue
+++ /dev/null
@@ -1,143 +0,0 @@
-<template>
-  <win-sm :title="setting.title" @close="close" :width="'800px'">
-    <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
-      <el-form-item label="璁″垝绫诲瀷" prop="planTypeCode">
-        <el-select v-model="formData.planTypeCode" placeholder="" clearable style="width: 100%">
-          <el-option
-            v-for="item in options"
-            :key="item.dict_code"
-            :label="item.dict_label"
-            :value="item.dict_code">
-          </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="璁″垝鍚嶇О" prop="projectName">
-        <el-input v-model="formData.projectName" placeholder="" clearable maxlength="32" show-word-limit style="width: 100%"/>
-      </el-form-item>
-      <el-form-item label="缂栧彿" prop="projectCode">
-        <el-input v-model="formData.projectCode" placeholder="" clearable maxlength="32" show-word-limit style="width: 100%"/>
-      </el-form-item>
-      <el-form-item label="鐘舵��" prop="status">
-        <el-radio-group v-model="formData.status">
-          <el-radio :label="1" border>鍚敤</el-radio>
-          <el-radio :label="0" border>绂佺敤</el-radio>
-        </el-radio-group>
-      </el-form-item>
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input
-          v-model="formData.remark"
-          type="textarea"
-          :rows="3"
-          maxlength="200"
-          show-word-limit
-        />
-      </el-form-item>
-    </el-form>
-    <div slot="footer" align="center" class="dialog-footer">
-      <my-button name="鍙栨秷" site="form" @click="close"/>
-      <my-button name="淇濆瓨" site="form" @click="save"/>
-    </div>
-  </win-sm>
-</template>
-
-<script>
-import winSm from '@/components/win/win-sm'
-import myButton from '@/components/myButton/myButton'
-import * as api from "@/api/projectConfig/buildPlan";
-import {getDicts} from "@/api/system/dict/data";
-
-export default {
-  name: 'edit',
-  components: {winSm, myButton},
-  props: {
-    // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍
-    // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦
-    // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁
-    setting: {
-      type: Object,
-      default: () => {
-      }
-    }
-  },
-  data() {
-    return {
-      loading: false,
-      options: [],
-      formData: {
-        planTypeCode: '',
-        projectName: '',
-        projectCode: '',
-        status: 1,
-        remark: '',
-      },
-      rules: {
-        planTypeCode: [
-          {required: true, message: '璇烽�夋嫨璁″垝绫诲瀷', trigger: 'blur'},
-        ],
-        projectName: [
-          {required: true, message: '璇疯緭鍏ヨ鍒掑悕绉�', trigger: 'blur'},
-        ],
-        projectCode: [
-          {required: true, message: '璇疯緭鍏ョ紪鍙�', trigger: 'blur'},
-        ]
-      }
-    }
-  },
-  created() {
-    this.loading = true
-    this.getInfo()
-    this.getPlanType()
-  },
-  methods: {
-    getPlanType() {
-      getDicts('PLAN_TYPE').then(res => {
-        this.options = res
-      })
-    },
-    getInfo() {
-      this.title = this.setting.title
-      if (this.setting.id != null) {
-        // 鏌ヨ鏁版嵁
-        api.getDetail({id: this.setting.id}).then(res => {
-          this.loading = false
-          this.formData = Object.assign(this.formData, res)
-        })
-      }else{
-        this.loading = false
-      }
-    },
-    close() {
-      this.formData = {
-        planTypeCode: '',
-        projectName: '',
-        projectCode: '',
-        status: 1,
-        remark: '',
-      }
-      this.$emit('close')
-    },
-    save() {
-      this.$refs.ruleForm.validate((valid) => {
-        if (valid) {
-          const params = Object.assign({}, this.formData)
-          this.loading = true
-          api[params.id?'upd':'add'](params).then(res => {
-            this.loading = false
-            if (res) {
-              this.$message.success('淇濆瓨鎴愬姛锛�')
-              this.close()
-              this.$emit('search')
-            } else {
-              this.$message.error('淇濆瓨澶辫触')
-            }
-          }).catch(()=>{
-            this.loading = false
-          })
-        } else {
-          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
-        }
-      })
-    }
-  }
-}
-</script>
diff --git a/admin-web/src/views/projectConfig/buildPlan/index.vue b/admin-web/src/views/projectConfig/buildPlan/index.vue
deleted file mode 100644
index 31c9c5d..0000000
--- a/admin-web/src/views/projectConfig/buildPlan/index.vue
+++ /dev/null
@@ -1,210 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-card class="box-card" shadow="never">
-      <div class="filter-container" style="margin-bottom: 10px">
-        <my-search ref="searchBar" :items="items" @search="filterForm"></my-search>
-      </div>
-      <!--鍒楄〃-->
-      <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
-    </el-card>
-    <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"></edit>
-    <detail v-if="detailSetting.show" :setting="detailSetting" @close="detailSetting.show = false" @search="search"></detail>
-    <nodeChoose v-if="nodeSetting.show" :setting="nodeSetting" @close="nodeSetting.show = false" @search="search"></nodeChoose>
-  </div>
-</template>
-
-<script>
-import MyTableV2 from '@/components/myTable/myTableV2';
-import SettingIplatform from '@/utils/settingIplatform';
-import items from './items';
-import edit from './edit'
-import detail from "@/views/projectConfig/buildPlan/detail";
-import nodeChoose from './nodeChoose/index'
-import {del, updStatus} from "@/api/projectConfig/buildPlan";
-
-export default {
-  components: {MyTableV2, edit,detail,nodeChoose},
-  data() {
-    return {
-      // 鎼滅储鏉′欢
-      items: items,
-      filterFrom: {
-        projectName: '',
-        projectCode: '',
-        planTypeCode: '',
-        status: '1',
-      },
-      //鏂板缂栬緫
-      editSetting: {
-        title: '',
-        id: '',
-        show: false,
-      },
-      //璇︽儏
-      detailSetting: {
-        title: '闃舵鑺傜偣棰勮',
-        id: '',
-        show: false,
-      },
-      //鑺傜偣璁剧疆
-      nodeSetting: {
-        title: '鑺傜偣閫夋嫨',
-        stageId: '',
-        show: false,
-      },
-      // 琛ㄦ牸鏁版嵁
-      table: {
-        showIndex: true, // 鏄惁鏄剧ず搴忓彿
-        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
-        url: SettingIplatform.apiBaseURL + '/pc/p/temp/project/list', // 璇锋眰鍦板潃
-        // 宸ュ叿鏉�
-        tools: {
-          columnsCtrl: {
-            // 鍒楁帶鍒舵寜閽�
-            show: false,
-          },
-          generalExport: {
-            // 閫氱敤瀵煎嚭鎸夐挳
-            show: false,
-          },
-          // 鑷畾涔夊伐鍏锋潯鎸夐挳
-          custom: [
-            {
-              name: '鏂板',
-              click: () => {
-                this.showAdd(null);
-              },
-            },
-          ],
-        },
-        // 鍒椾俊鎭�
-        columns: [
-          {
-            title: '妯℃澘鍚嶇О', field: 'projectName', align: 'left',
-            formatter: (row) => {
-                return {
-                  value: row.projectName,
-                  type: 'primary',
-                  click: () => {
-                    // 鐐瑰嚮浜嬩欢
-                    this.shoDetail(row.id);
-                  },
-                }
-            }
-          },
-          {title: '缂栧彿', field: 'projectCode', align: 'left', width: 200},
-          {title: '璁″垝绫诲瀷', field: 'planTypeName', align: 'left', width: 300},
-          {
-            field: 'status',
-            title: '鐘舵��',
-            align: 'center',
-            width: 80,
-            switch: (row) => {
-              return {
-                value: row.status === 1, // 寮�
-                label: row.status === 1 ? '鍚敤' : '绂佺敤', // 寮�鐨勬弿杩�
-                click: () => {
-                  // 鐐瑰嚮浜嬩欢
-                  this.updState(row);
-                },
-              };
-            },
-          },
-        ],
-        // 鎿嶄綔淇℃伅
-        operation: {
-          show: true, // 鏄剧ず鎿嶄綔鍒�
-          width: '200', // 鍒楀
-          attr: [
-            {
-              title: '缂栬緫',
-              events: (row) => {
-                this.showAdd(row.id);
-              },
-            },
-            {
-              title: '鑺傜偣閫夋嫨',
-              type: 'success',
-              events: (row) => {
-                this.showNode(row.id);
-              },
-            },
-          ],
-        },
-        paging: {
-          show: false, // 鏄剧ず鍒嗛〉
-          // 鍒嗛〉淇℃伅
-          page: {
-            small: false,
-            pageNum: 1,
-            pageSize: 10,
-            total: 0,
-          },
-        },
-      },
-    };
-  },
-  mounted() {
-  },
-  methods: {
-    // 鏌ヨtable鍒楄〃
-    search(pageNum) {
-      if (pageNum != undefined) {
-        this.$refs.myTable.search(pageNum);
-      } else {
-        this.$refs.myTable.search();
-      }
-    },
-    filterForm(params) {
-      this.filterFrom = Object.assign(this.filterFrom, params);
-      this.search();
-    },
-    //娣诲姞銆佺紪杈�
-    showAdd(id) {
-      let title = '娣诲姞';
-      if (id != null) {
-        title = '缂栬緫';
-      }
-      this.editSetting.id = id;
-      this.editSetting.title = title;
-      this.editSetting.show = true;
-    },
-    updState(row) {
-      let text = row.status === 0 ? "鍚敤" : "绂佺敤";
-      this.$modal.confirm('纭瑕�' + text + '"' + row.projectName + '"鍚楋紵').then(() => {
-        let status = row.status === 1 ? 0 : 1
-        updStatus({
-          id: row.id,
-          status
-        }).then(res => {
-          if (res) {
-            row.status = row.status === 1 ? 0 : 1
-            this.$modal.msgSuccess(text + "鎴愬姛");
-          }
-        })
-      })
-    },
-    showNode(id) {
-      this.nodeSetting.stageId = id;
-      this.nodeSetting.show = true;
-    },
-    shoDetail(id) {
-      this.detailSetting.id = id;
-      this.detailSetting.show = true;
-    },
-    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
-    handleDelete(row) {
-      this.$confirm('鏄惁纭鍒犻櫎"' + row.stageName + '"闃舵锛�', {
-        type: 'warning'
-      }).then(() => {
-        del({id: row.id}).then(res => {
-          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-          this.search()
-        })
-      })
-    },
-  },
-};
-</script>
-
-<style scoped></style>
diff --git a/admin-web/src/views/projectConfig/buildPlan/items.js b/admin-web/src/views/projectConfig/buildPlan/items.js
deleted file mode 100644
index 2b060c9..0000000
--- a/admin-web/src/views/projectConfig/buildPlan/items.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import SettingIplatform from "@/utils/settingIplatform";
-
-export default [
-  {
-    type: 'text',
-    dataIndex: 'projectName',
-    label: '妯℃澘鍚嶇О',
-    placeholder: '璇疯緭鍏�',
-    defaultValue: ''
-  },
-  {
-    type: 'text',
-    dataIndex: 'projectCode',
-    label: '妯℃澘缂栧彿',
-    placeholder: '璇疯緭鍏�',
-    defaultValue: ''
-  },
-  {
-    type: 'select',
-    dataIndex: 'planTypeCode',
-    label: '璁″垝绫诲瀷',
-    placeholder: '璇烽�夋嫨',
-    defaultValue: '',
-    options: [],
-    optionsConfig: {
-      label: 'dict_label',
-      value: 'dict_code',
-      url: SettingIplatform.apiBaseURL + '/permit/dict/data/type/PLAN_TYPE'
-    }
-  },
-  {
-    type: 'select',
-    dataIndex: 'status',
-    label: '鐘舵��',
-    placeholder: '璇烽�夋嫨',
-    defaultValue: '1',
-    options: [
-      {
-        label: '鍚敤',
-        value: '1'
-      },
-      {
-        label: '绂佺敤',
-        value: '0'
-      }
-    ]
-  }
-]
diff --git a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/edit.vue b/admin-web/src/views/projectConfig/buildPlan/nodeChoose/edit.vue
deleted file mode 100644
index 836143c..0000000
--- a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/edit.vue
+++ /dev/null
@@ -1,117 +0,0 @@
-<template>
-  <win-sm :title="setting.title" @close="close" :width="'800px'">
-    <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
-      <el-form-item label="闃舵鍚嶇О" prop="nodeName">
-        <el-input v-model="formData.nodeName" clearable maxlength="32" show-word-limit style="width: 100%"/>
-      </el-form-item>
-      <el-form-item label="灞曠ず椤哄簭" prop="sort">
-        <el-input-number v-model="formData.sort" clearable :min="1"/>
-      </el-form-item>
-      <el-form-item label="鐘舵��" prop="status">
-        <el-radio-group v-model="formData.status">
-          <el-radio :label="1" border>鍚敤</el-radio>
-          <el-radio :label="0" border>绂佺敤</el-radio>
-        </el-radio-group>
-      </el-form-item>
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input
-          v-model="formData.remark"
-          type="textarea"
-          :rows="3"
-          maxlength="200"
-          show-word-limit
-        />
-      </el-form-item>
-    </el-form>
-    <div slot="footer" align="center" class="dialog-footer">
-      <my-button name="鍙栨秷" site="form" @click="close"/>
-      <my-button name="淇濆瓨" site="form" @click="save"/>
-    </div>
-  </win-sm>
-</template>
-
-<script>
-import winSm from '@/components/win/win-sm'
-import myButton from '@/components/myButton/myButton'
-import * as node from "@/api/projectConfig/stageNode";
-
-export default {
-  name: 'edit',
-  components: {winSm, myButton},
-  props: {
-    // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍
-    // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦
-    // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁
-    setting: {
-      type: Object,
-      default: () => {
-      }
-    }
-  },
-  data() {
-    return {
-      loading: false,
-      formData: {
-        nodeName: '',
-        sort: 1,
-        status: 1,
-        remark: '',
-      },
-      rules: {
-        nodeName: [
-          {required: true, message: '璇疯緭鍏ヨ妭鐐瑰悕绉�', trigger: 'blur'}
-        ],
-      }
-    }
-  },
-  created() {
-    this.loading = true
-    this.getInfo()
-  },
-  methods: {
-    getInfo() {
-      this.title = this.setting.title
-      if (this.setting.id != null) {
-        // 鏌ヨ鏁版嵁
-        node.getDetail({id: this.setting.id}).then(res => {
-          this.loading = false
-          this.formData = Object.assign(this.formData, res)
-        })
-      }else{
-        this.loading = false
-      }
-    },
-    close() {
-      this.formData = {
-        nodeName: '',
-        sort: 1,
-        status: 1,
-        remark: '',
-      }
-      this.$emit('close')
-    },
-    save() {
-      this.$refs.ruleForm.validate((valid) => {
-        if (valid) {
-          const params = Object.assign({}, this.formData)
-          this.loading = true
-          node[params.id?'upd':'add'](params).then(res => {
-            this.loading = false
-            if (res) {
-              this.$message.success('淇濆瓨鎴愬姛锛�')
-              this.close()
-              this.$emit('search')
-            } else {
-              this.$message.error('淇濆瓨澶辫触')
-            }
-          }).catch(()=>{
-            this.loading = false
-          })
-        } else {
-          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
-        }
-      })
-    }
-  }
-}
-</script>
diff --git a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/index.vue b/admin-web/src/views/projectConfig/buildPlan/nodeChoose/index.vue
deleted file mode 100644
index ef976e8..0000000
--- a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/index.vue
+++ /dev/null
@@ -1,106 +0,0 @@
-<template>
-  <win-lg :title="setting.title" @close="close" :width="'800px'">
-    <el-tabs v-loading="loading" v-model="activeName" :before-leave="beforeLeave">
-      <el-tab-pane label="閫夋嫨鑺傜偣" name="first">
-        <div class="box">
-          <stageNode :tempProjectId="setting.stageId" ref="stageNode"></stageNode>
-        </div>
-      </el-tab-pane>
-      <el-tab-pane label="鑺傜偣鍛ㄦ湡璁剧疆" name="second">
-        <div class="box">
-          <nodeCycle ref="nodeCycle"/>
-        </div>
-      </el-tab-pane>
-      <el-tab-pane label="棰勮" name="third">
-        <div class="box">
-          <preview ref="preview" :tempProjectStages="tempProjectStages"/>
-        </div>
-      </el-tab-pane>
-    </el-tabs>
-    <div slot="footer" align="center" class="dialog-footer">
-      <my-button name="鍙栨秷" site="form" @click="close"/>
-      <template v-if="activeName === 'first'">
-        <my-button key="4" name="涓嬩竴姝�" type="primary" site="form" @click="activeName = 'second'"/>
-      </template>
-      <my-button v-if="activeName === 'second'" key="1" name="涓婁竴姝�" type="primary" site="form" @click="activeName = 'first'"/>
-      <my-button v-if="activeName === 'second'" key="2" name="淇濆瓨" site="form" @click="doSave" />
-      <my-button @click="activeName='third'" v-if="activeName === 'second'" key="3" name="棰勮" type="warning" site="form"/>
-      <my-button v-if="activeName === 'third'" name="杩斿洖" site="form" @click="activeName='second'"/>
-    </div>
-  </win-lg>
-</template>
-
-<script>
-import winLg from '@/components/win/win-lg'
-import myButton from '@/components/myButton/myButton'
-import stageNode from "@/views/projectConfig/buildPlan/nodeChoose/stageNode";
-import nodeCycle from "@/views/projectConfig/buildPlan/nodeChoose/nodeCycle";
-import preview from "@/views/projectConfig/buildPlan/nodeChoose/preview";
-import {updPStageNode} from '@/api/projectConfig/buildPlanNode'
-export default {
-  name: 'nodeChoose',
-  components: {winLg, myButton,stageNode,nodeCycle,preview},
-  props: {
-    // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍
-    // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦
-    // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁
-    setting: {
-      type: Object,
-      default: () => {
-      }
-    }
-  },
-  data() {
-    return {
-      loading: false,
-      activeName: 'first',
-      tempProjectStages: []
-    };
-  },
-  mounted() {
-  },
-  methods: {
-    doSave(){
-      console.log(this.$refs.nodeCycle.getSelectTree())
-      this.loading = true
-      updPStageNode({
-        tempProjectId:this.setting.stageId,
-        tempProjectStages:this.$refs.nodeCycle.getSelectTree()
-      }).then(res=>{
-        this.loading = false
-        this.$message.success('淇濆瓨鎴愬姛锛�')
-        this.close()
-        this.$emit('search')
-      }).catch(()=>{
-        this.loading = false
-      })
-    },
-    close() {
-      this.$emit('close')
-    },
-    beforeLeave(activeName, oldActiveName) {
-      let checked = this.$refs.stageNode.tree.some(item=>item.checked)
-      if(activeName==='second'&&checked){
-        this.$refs.stageNode.setNodeCycleData()
-      }
-      if(activeName==='third'&&checked){
-        this.$EventBus.$emit('clearData')
-        this.tempProjectStages = this.$refs.nodeCycle.getSelectTree()
-      }
-      if(activeName!=='first'&&!checked){
-        this.$modal.msgError('璇峰厛閫夋嫨闃舵鑺傜偣')
-        this.activeName = oldActiveName
-      }
-      return checked
-      // return false
-    },
-  },
-};
-</script>
-
-<style scoped>
-.box {
-  height: calc(100vh - 450px);
-  overflow-y: auto;
-}
-</style>
diff --git a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/items.js b/admin-web/src/views/projectConfig/buildPlan/nodeChoose/items.js
deleted file mode 100644
index cd07526..0000000
--- a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/items.js
+++ /dev/null
@@ -1,26 +0,0 @@
-export default [
-  {
-    type: 'text',
-    dataIndex: 'nodeName',
-    label: '鑺傜偣鍚嶇О',
-    placeholder: '鑺傜偣鍚嶇О',
-    defaultValue: ''
-  },
-  {
-    type: 'select',
-    dataIndex: 'status',
-    label: '鐘舵��',
-    placeholder: '璇烽�夋嫨',
-    defaultValue: '',
-    options: [
-      {
-        label: '鍚敤',
-        value: '1'
-      },
-      {
-        label: '绂佺敤',
-        value: '0'
-      }
-    ]
-  }
-]
diff --git a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/nodeCycle.vue b/admin-web/src/views/projectConfig/buildPlan/nodeChoose/nodeCycle.vue
deleted file mode 100644
index 601d0fe..0000000
--- a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/nodeCycle.vue
+++ /dev/null
@@ -1,215 +0,0 @@
-<template>
-  <div>
-    <el-tabs tab-position="left" style="">
-      <template v-for="(stage,i) in tree">
-        <el-tab-pane v-if="stage.checked" :key="i" :label="stage.name">
-          <el-form :model="{tableData: tree}" ref="ruleForm" label-width="120px" class="demo-dynamic">
-            <el-form-item label="闃舵鎬诲懆鏈�(澶�)">
-              <el-input-number v-model="stage.stageTimeDays" :controls="false" :min="1" :step="1" step-strictly style="width: 400px;text-align: left"></el-input-number>
-            </el-form-item>
-            <el-table
-              border
-              height="calc(100vh - 501px)"
-              :data="stage.children.filter(item=>item.checked)"
-              style="width: 100%">
-              <el-table-column
-                prop="name"
-                align="center"
-                label="鑺傜偣"/>
-              <el-table-column
-                align="center"
-                label="鑷」鐩紑濮嬬n澶�"
-                width="180">
-                <template slot-scope="{row}">
-                  <el-input-number v-model="row.nodeTimeStart" :controls="false" :min="getStageStart(i)" :max="getStageEnd(i)" :step="1" step-strictly style="width: 100%;text-align: left"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column
-                align="center"
-                label="鎸佺画澶╂暟"
-                width="180">
-                <template slot-scope="{row}">
-                  <el-input-number v-model="row.nodeTimeDays" :controls="false" :min="1" :max="stage.stageTimeDays||Infinity" :step="1" step-strictly style="width: 100%;text-align: left"></el-input-number>
-                </template>
-              </el-table-column>
-              <el-table-column
-                align="center"
-                label="瀹屾垚鍚庢彁閱�"
-                width="95">
-                <template slot-scope="{row}">
-                  <el-switch
-                    @change="notifyChange($event,row)"
-                    v-model="row.completeNotifyStatus"
-                    active-color="#13ce66"
-                    :active-value="1"
-                    :inactive-value="0">
-                  </el-switch>
-                </template>
-              </el-table-column>
-              <el-table-column
-                align="center"
-                label="鎻愰啋鑺傜偣"
-                width="180">
-                <template slot-scope="{row,$index}">
-                  <el-cascader
-                    v-model="row.notifyTempStageNodeId"
-                    :ref="'cascade'+i+$index"
-                    :disabled="row.completeNotifyStatus===0"
-                    @change="cascadeChange($event,row,'cascade'+i+$index)"
-                    :options="options"
-                    :show-all-levels="false"
-                    :props="{ multiple: true, checkStrictly: true, emitPath: false }"
-                    clearable></el-cascader>
-                </template>
-              </el-table-column>
-              <el-table-column
-                align="center"
-                label="涓存湡棰勮"
-                width="80">
-                <template slot-scope="{row}">
-                  <el-switch
-                    v-model="row.warnNeed"
-                    active-color="#13ce66"
-                    :active-value="1"
-                    :inactive-value="0">
-                  </el-switch>
-                </template>
-              </el-table-column>
-              <el-table-column
-                align="center"
-                label="闄勪欢蹇呬紶"
-                width="80">
-                <template slot-scope="{row}">
-                  <el-switch
-                    v-model="row.fileNeed"
-                    active-color="#13ce66"
-                    :active-value="1"
-                    :inactive-value="0">
-                  </el-switch>
-                </template>
-              </el-table-column>
-            </el-table>
-          </el-form>
-        </el-tab-pane>
-      </template>
-    </el-tabs>
-  </div>
-</template>
-
-<script>
-export default {
-  data() {
-    return {
-      options: [],
-      tree: []
-    }
-  },
-  mounted() {
-    this.$EventBus.$on('setTree', data => {
-      this.tree = data
-      let arr = []
-      data.map(item => {
-        if (item.checked) {
-          let stage = {
-            value: item.id,
-            label: item.name,
-            notifyTempType: 0, // 0闃舵 1鑺傜偣
-            children: []
-          }
-          item.children.map(node => {
-            if (node.checked) {
-              stage.children.push({
-                value: node.id,
-                label: node.name,
-                notifyTempType: 1, // 0闃舵 1鑺傜偣
-              })
-            }
-          })
-          arr.push(stage)
-        }
-      })
-      this.options = arr //鍙�夋嫨涓烘彁閱掕妭鐐圭殑鍒楄〃
-    })
-  },
-  computed:{
-    getStageStart(){
-      return (i)=>{
-        let num = 0
-        this.tree.map((item,idx)=>{
-          if(idx<i){
-            num+=(item.stageTimeDays||0)
-          }
-        })
-        return num+1
-      }
-
-    },
-    getStageEnd(){
-      return (i)=>{
-        let num = 0
-        this.tree.map((item,idx)=>{
-          if(idx<i+1){
-            num+=(item.stageTimeDays||0)
-          }
-        })
-        return num+1
-      }
-
-    }
-  },
-  beforeDestroy() {
-    this.$EventBus.$off('setTree')
-  },
-  methods: {
-    getSelectTree(){
-      let arr = []
-      this.tree.map(item => {
-        if (item.checked) {
-          let stage = JSON.parse(JSON.stringify(item))
-          delete stage.checked
-          delete stage.checkedList
-          delete stage.name
-          let children =[]
-          stage.children.map(node => {
-            if (node.checked) {
-              let item = JSON.parse(JSON.stringify(node))
-              delete item.checked
-              delete item.notifyTempStageNodeId
-              delete item.name
-              children.push(item)
-            }
-          })
-          stage.children = children
-          arr.push(stage)
-        }
-      })
-      return arr
-    },
-    notifyChange(e,row){
-      row.notify = []
-      row.notifyStageNodes = []
-    },
-    cascadeChange(e, row, ref) {
-      let nodes = this.$refs[ref][0].getCheckedNodes(false)
-      let arr = []
-      nodes.map(item => {
-        if (item.checked) {
-          arr.push({
-            tempStageNodeId: row.id,
-            notifyTempType: item.level - 1,
-            notifyTempStageNodeId: item.value
-          })
-        }
-      })
-      row.notify = arr
-    }
-  }
-}
-</script>
-
-<style scoped>
-.tab-content {
-  height: calc(100vh - 450px);
-  overflow-y: auto;
-}
-</style>
diff --git a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/preview.vue b/admin-web/src/views/projectConfig/buildPlan/nodeChoose/preview.vue
deleted file mode 100644
index 3018bc8..0000000
--- a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/preview.vue
+++ /dev/null
@@ -1,205 +0,0 @@
-<template>
-  <div class="box">
-    <div class="f-r">
-      <div>璁剧疆寮�濮嬫椂闂�</div>
-      <el-date-picker
-        style="margin: 0 10px"
-        v-model="startTime"
-        type="date"
-        value-format="yyyyMMddHHmmss"
-        placeholder="閫夋嫨鏃ユ湡">
-      </el-date-picker>
-      <my-button @click="doPreview" name="鐢熸垚棰勮" type="warning" site="form"/>
-    </div>
-    <el-table
-      v-loading="loading"
-      border
-      height="calc(100vh - 505px)"
-      :data="tableData"
-      :span-method="spanMethod"
-      style="width: 100%;margin-top: 15px">
-      <el-table-column
-        prop="stageName"
-        align="center"
-        width="130"
-        label="闃舵"/>
-      <el-table-column
-        prop="nodeName"
-        align="center"
-        width="110"
-        label="鑺傜偣"/>
-      <el-table-column
-        prop="startDate"
-        align="center"
-        label="寮�濮嬫椂闂�"
-        width="110">
-        <template slot-scope="scope">
-          <span>{{ longToDate(scope.row.startDate) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column
-        prop="endDate"
-        align="center"
-        label="鎴鏃堕棿"
-        width="110">
-        <template slot-scope="scope">
-          <span>{{ longToDate(scope.row.endDate) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column :width="dates.length*100+2" class-name="my-col">
-        <template slot="header" slot-scope="scope">
-          <span v-for="(item,i) in dates" :key="i" class="item">{{ longToDate(item) }}</span>
-        </template>
-        <template slot-scope="{row,$index}">
-          <!--          <span v-for="(item,i) in dates" :key="i" class="progress" :class="(dates.indexOf(row.startDate)<=i)&&(dates.indexOf(row.endDate)>=i)?'act':''"><span class="act"></span></span>-->
-          <span v-for="(item,i) in dates" :key="i" class="progress">
-            <span v-if="(dates.indexOf(row.startDate)<=i)&&(dates.indexOf(row.endDate)>=i)" class="act"></span>
-          </span>
-        </template>
-      </el-table-column>
-    </el-table>
-  </div>
-</template>
-
-<script>
-import {getPreview} from "@/api/projectConfig/buildPlanNode";
-import myButton from '@/components/myButton/myButton'
-import * as DateFormatter from '@/utils/DateFormatter';
-
-export default {
-  name: 'preview',
-  components: {myButton},
-  props: ['tempProjectStages'],
-  data() {
-    return {
-      loading: false,
-      startTime: '',
-      tableData: [],
-      spanArr: [],
-      pos: 0,
-      dates: []
-    }
-  },
-  mounted() {
-    this.$EventBus.$on('clearData', data => {
-      this.startTime = ''
-      this.tableData = []
-      this.spanArr = []
-      this.pos = 0
-      this.dates = []
-    })
-  },
-  methods: {
-    doPreview() {
-      this.loading = true
-      getPreview({
-        startDate: this.startTime,
-        tempProjectStages: this.tempProjectStages
-      }).then(res => {
-        let arr = []
-        res.map(item => {
-          arr.push(item.startDate)
-          arr.push(item.endDate)
-        })
-        let newArr = arr.filter((value, index, self) => {
-          return self.indexOf(value) === index;
-        });
-        this.dates = newArr.sort()
-        this.tableData = res
-        this.getSpanArr(res)
-        this.loading = false
-      }).catch(() => {
-        this.loading = false
-      })
-    },
-    spanMethod({row, column, rowIndex, columnIndex}) {
-      if (columnIndex === 0) {
-        const rowspan = this.spanArr[rowIndex]
-        const colspan = rowspan > 0 ? 1 : 0
-        return {
-          rowspan, //琛�
-          colspan //鍒�
-        };
-      }
-    },
-    getSpanArr(data) {
-      this.spanArr = [];
-      for (let i = 0; i < data.length; i++) {
-        if (i === 0) {
-          this.spanArr.push(1);
-          this.pos = 0;
-        } else {
-          // 鍒ゆ柇褰撳墠鍏冪礌涓庝笂涓�涓厓绱犳槸鍚︾浉鍚�
-          if (data[i].id === data[i - 1].id && data[i].id) {
-            this.spanArr[this.pos] += 1;
-            this.spanArr.push(0);
-          } else {
-            this.spanArr.push(1);
-            this.pos = i;
-          }
-        }
-      }
-    },
-    longToDate(long) {
-      return DateFormatter.LongToDate(long)
-    }
-  }
-}
-</script>
-<style>
-.my-col {
-  padding: 0 !important;
-}
-
-.my-col .cell {
-  padding: 0 !important;
-}
-
-.el-table__row .my-col {
-  border: none !important;
-}
-</style>
-<style scoped lang="scss">
-.item {
-  display: inline-block;
-  text-align: center;
-  width: 100px;
-}
-
-.progress {
-  position: relative;
-  //left: -50px;
-  display: inline-block;
-  width: 100px;
-  height: 24px;
-  margin-top: 8px;
-
-  &::after {
-    content: '';
-    position: absolute;
-    width: 1px;
-    height: 40px;
-    left: 100px;
-    top: -8px;
-    border-right: 1px dashed #dfe6ec;
-  }
-}
-
-.act {
-  position: absolute;
-  display: inline-block;
-  width: 100px;
-  height: 24px;
-  background-color: #0c8aff;
-  //left: -50px;
-}
-
-.rt {
-  //left: -50px;
-}
-
-.lt {
-
-}
-
-</style>
diff --git a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/stageNode.vue b/admin-web/src/views/projectConfig/buildPlan/nodeChoose/stageNode.vue
deleted file mode 100644
index 3c289fd..0000000
--- a/admin-web/src/views/projectConfig/buildPlan/nodeChoose/stageNode.vue
+++ /dev/null
@@ -1,85 +0,0 @@
-<template>
-  <div class="box" v-loading="loading">
-    <div v-for="(stage,i) in tree" :key="i">
-      <el-checkbox @change="stageChange($event,stage)" v-model="stage.checked">{{ stage.name }}</el-checkbox>
-      <div style="margin: 15px 0;"></div>
-      <div style="margin: 15px 0 15px 20px">
-        <el-checkbox-group @change="nodesChange($event,stage)" v-model="stage.checkedList">
-          <el-checkbox @change="nodeChange($event,stage,node)" v-for="(node,k) in stage.children" :label="node.id" :key="k">{{ node.name }}</el-checkbox>
-        </el-checkbox-group>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import {getPStageNode} from "@/api/projectConfig/buildPlanNode";
-
-export default {
-  props: ['tempProjectId'],
-  name: 'stageNode',
-  data() {
-    return {
-      loading: true,
-      tree: [],
-      checkAll: false,
-      checkedCities: [],
-    }
-  },
-  mounted() {
-    this.getTree()
-  },
-  methods: {
-    setNodeCycleData() {
-      this.$EventBus.$emit('setTree', this.tree)
-    },
-    setPreviewData() {
-      this.$EventBus.$emit('setPreviewData', this.tree)
-    },
-    stageChange(e, stage) {
-      if (e) {
-        stage.checkedList = stage.children.map(item => {
-          item.checked = true
-          return item.id
-        })
-      } else {
-        stage.checkedList = []
-      }
-    },
-    nodesChange(e, stage) {
-      stage.checked = e.length > 0
-    },
-    nodeChange(e, stage, node) {
-      node.checked = e
-    },
-    getTree() {
-      getPStageNode({tempProjectId: this.tempProjectId}).then(res => {
-        this.loading = false
-        res.map((stage, i) => {
-          stage.checked = stage.children.some(item => item.isDelete === 0)
-          stage.stageTimeDays = stage.stageTimeDays || undefined
-          let checkedList = []
-          stage.children.map(node => {
-            if (node.isDelete === 0) {
-              checkedList.push(node.id)
-            }
-            node.checked = node.isDelete === 0
-            node.nodeTimeStart = node.nodeTimeStart || undefined //鑷」鐩紑濮嬬N澶�
-            node.nodeTimeDays = node.nodeTimeDays || undefined //鎸佺画澶╂暟
-            if(node.notify){
-              node.notifyTempStageNodeId = node.notify.map(n=>n.notifyTempStageNodeId)
-            }
-
-          })
-          stage.checkedList = checkedList
-        })
-        this.tree = res
-      })
-    }
-  }
-}
-</script>
-
-<style scoped>
-
-</style>
diff --git a/admin-web/src/views/projectConfig/kanbanConfig/edit.vue b/admin-web/src/views/projectConfig/kanbanConfig/edit.vue
deleted file mode 100644
index c8d1761..0000000
--- a/admin-web/src/views/projectConfig/kanbanConfig/edit.vue
+++ /dev/null
@@ -1,115 +0,0 @@
-<template>
-  <win-sm :title="setting.title" @close="close" :width="'800px'">
-    <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="120px">
-      <el-form-item label="鍏抽敭鑺傜偣鍚嶇О" prop="boardName">
-        <el-input v-model="formData.boardName" placeholder="璇疯緭鍏ュ叧閿妭鐐瑰悕绉�" clearable maxlength="32" show-word-limit style="width: 100%"/>
-      </el-form-item>
-<!--      <el-form-item label="缂栧彿" prop="boardCode">
-        <el-input v-model="formData.boardCode" placeholder="璇疯緭鍏ョ紪鍙�" clearable maxlength="32" show-word-limit style="width: 100%"/>
-      </el-form-item>-->
-      <el-form-item label="灞曠ず椤哄簭" prop="sort">
-        <el-input-number v-model="formData.sort" clearable :min="1"/>
-      </el-form-item>
-      <el-form-item label="鐘舵��" prop="status">
-        <el-radio-group v-model="formData.status">
-          <el-radio :label="1" border>鍚敤</el-radio>
-          <el-radio :label="0" border>绂佺敤</el-radio>
-        </el-radio-group>
-      </el-form-item>
-    </el-form>
-    <div slot="footer" align="center" class="dialog-footer">
-      <my-button name="鍙栨秷" site="form" @click="close"/>
-      <my-button name="淇濆瓨" site="form" @click="save"/>
-    </div>
-  </win-sm>
-</template>
-
-<script>
-import winSm from '@/components/win/win-sm'
-import myButton from '@/components/myButton/myButton'
-import * as api from "@/api/projectConfig/kanbanConfig";
-
-export default {
-  name: 'edit',
-  components: {winSm, myButton},
-  props: {
-    // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍
-    // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦
-    // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁
-    setting: {
-      type: Object,
-      default: () => {
-      }
-    }
-  },
-  data() {
-    return {
-      loading: false,
-      formData: {
-        boardName: '',
-        boardCode: '',
-        sort: '',
-        status: 1
-      },
-      rules: {
-        boardName: [
-          {required: true, message: '璇疯緭鍏ュ叧閿妭鐐瑰悕绉�', trigger: 'blur'},
-        ],
-        boardCode: [
-          {required: true, message: '璇疯緭鍏ョ紪鍙�', trigger: 'blur'},
-        ]
-      }
-    }
-  },
-  created() {
-    this.loading = true
-    this.getInfo()
-  },
-  methods: {
-    getInfo() {
-      this.title = this.setting.title
-      if (this.setting.id != null) {
-        // 鏌ヨ鏁版嵁
-        api.getDetail({id: this.setting.id}).then(res => {
-          this.loading = false
-          this.formData = Object.assign(this.formData, res)
-        })
-      }else{
-        this.loading = false
-      }
-    },
-    close() {
-      this.formData = {
-        planTypeCode: '',
-        projectName: '',
-        projectCode: '',
-        status: 1,
-        remark: '',
-      }
-      this.$emit('close')
-    },
-    save() {
-      this.$refs.ruleForm.validate((valid) => {
-        if (valid) {
-          const params = Object.assign({}, this.formData)
-          this.loading = true
-          api[params.id?'upd':'add'](params).then(res => {
-            this.loading = false
-            if (res) {
-              this.$message.success('淇濆瓨鎴愬姛锛�')
-              this.close()
-              this.$emit('search')
-            } else {
-              this.$message.error('淇濆瓨澶辫触')
-            }
-          }).catch(()=>{
-            this.loading = false
-          })
-        } else {
-          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
-        }
-      })
-    }
-  }
-}
-</script>
diff --git a/admin-web/src/views/projectConfig/kanbanConfig/index.vue b/admin-web/src/views/projectConfig/kanbanConfig/index.vue
deleted file mode 100644
index 89ad20c..0000000
--- a/admin-web/src/views/projectConfig/kanbanConfig/index.vue
+++ /dev/null
@@ -1,166 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-card class="box-card" shadow="never">
-      <div class="filter-container" style="margin-bottom: 10px">
-        <my-search ref="searchBar" :items="items" @search="filterForm"></my-search>
-      </div>
-      <!--鍒楄〃-->
-      <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
-    </el-card>
-    <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"></edit>
-    <nodeChoose v-if="nodeSetting.show" :setting="nodeSetting" @close="nodeSetting.show = false" @search="search"></nodeChoose>
-  </div>
-</template>
-
-<script>
-import MyTableV2 from '@/components/myTable/myTableV2';
-import SettingIplatform from '@/utils/settingIplatform';
-import items from './items';
-import edit from './edit'
-import nodeChoose from "@/views/projectConfig/kanbanConfig/nodeChoose";
-import {updStatus} from "@/api/projectConfig/kanbanConfig";
-
-export default {
-  components: {MyTableV2, edit,nodeChoose},
-  data() {
-    return {
-      // 鎼滅储鏉′欢
-      items: items,
-      filterFrom: {
-        boardName: '',
-        status: '1',
-      },
-      //鏂板缂栬緫
-      editSetting: {
-        title: '',
-        id: '',
-        show: false,
-      },
-      //鑺傜偣璁剧疆
-      nodeSetting: {
-        title: '妯℃澘鑺傜偣璁剧疆',
-        stageId: '',
-        show: false,
-      },
-      // 琛ㄦ牸鏁版嵁
-      table: {
-        showIndex: true, // 鏄惁鏄剧ず搴忓彿
-        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
-        url: SettingIplatform.apiBaseURL + '/pc/p/temp/project/board/list', // 璇锋眰鍦板潃
-        // 宸ュ叿鏉�
-        tools: {
-          columnsCtrl: {
-            // 鍒楁帶鍒舵寜閽�
-            show: false,
-          },
-          generalExport: {
-            // 閫氱敤瀵煎嚭鎸夐挳
-            show: false,
-          },
-          // 鑷畾涔夊伐鍏锋潯鎸夐挳
-          custom: [],
-        },
-        // 鍒椾俊鎭�
-        columns: [
-          {title: '鍏抽敭鑺傜偣鍚嶇О', field: 'boardName', align: 'left'},
-          // {title: '缂栧彿', field: 'boardCode', align: 'center'},
-          {title: '椤哄簭鍙�', field: 'sort', align: 'left'},
-          {
-            field: 'status',
-            title: '鐘舵��',
-            align: 'center',
-            width: 80,
-            switch: (row) => {
-              return {
-                value: row.status === 1, // 寮�
-                label: row.status === 1 ? '鍚敤' : '绂佺敤', // 寮�鐨勬弿杩�
-                click: () => {
-                  // 鐐瑰嚮浜嬩欢
-                  this.updState(row);
-                },
-              };
-            },
-          },
-        ],
-        // 鎿嶄綔淇℃伅
-        operation: {
-          show: true, // 鏄剧ず鎿嶄綔鍒�
-          width: '250', // 鍒楀
-          attr: [
-            {
-              title: '缂栬緫',
-              events: (row) => {
-                this.showAdd(row.id);
-              },
-            },
-            {
-              title: '妯℃澘鑺傜偣璁剧疆',
-              type: 'success',
-              events: (row) => {
-                this.showNode(row.id);
-              },
-            },
-          ],
-        },
-        paging: {
-          show: false, // 鏄剧ず鍒嗛〉
-          // 鍒嗛〉淇℃伅
-          page: {
-            small: false,
-            pageNum: 1,
-            pageSize: 10,
-            total: 0,
-          },
-        },
-      },
-    };
-  },
-  mounted() {
-  },
-  methods: {
-    // 鏌ヨtable鍒楄〃
-    search(pageNum) {
-      if (pageNum != undefined) {
-        this.$refs.myTable.search(pageNum);
-      } else {
-        this.$refs.myTable.search();
-      }
-    },
-    filterForm(params) {
-      this.filterFrom = Object.assign(this.filterFrom, params);
-      this.search();
-    },
-    //娣诲姞銆佺紪杈�
-    showAdd(id) {
-      let title = '娣诲姞';
-      if (id != null) {
-        title = '缂栬緫';
-      }
-      this.editSetting.id = id;
-      this.editSetting.title = title;
-      this.editSetting.show = true;
-    },
-    updState(row) {
-      let text = row.status === 0 ? "鍚敤" : "绂佺敤";
-      this.$modal.confirm('纭瑕�' + text + '"' + row.boardName + '"鑺傜偣鍚楋紵').then(() => {
-        let status = row.status === 1 ? 0 : 1
-        updStatus({
-          id: row.id,
-          status
-        }).then(res => {
-          if (res) {
-            row.status = row.status === 1 ? 0 : 1
-            this.$modal.msgSuccess(text + "鎴愬姛");
-          }
-        })
-      })
-    },
-    showNode(id) {
-      this.nodeSetting.id = id;
-      this.nodeSetting.show = true;
-    },
-  },
-};
-</script>
-
-<style scoped></style>
diff --git a/admin-web/src/views/projectConfig/kanbanConfig/items.js b/admin-web/src/views/projectConfig/kanbanConfig/items.js
deleted file mode 100644
index bebbf01..0000000
--- a/admin-web/src/views/projectConfig/kanbanConfig/items.js
+++ /dev/null
@@ -1,33 +0,0 @@
-export default [
-  {
-    type: 'text',
-    dataIndex: 'boardName',
-    label: '鍏抽敭鑺傜偣鍚嶇О',
-    placeholder: '璇疯緭鍏�',
-    defaultValue: ''
-  },
-  /*{
-    type: 'text',
-    dataIndex: 'boardCode',
-    label: '妯℃澘缂栧彿',
-    placeholder: '妯℃澘缂栧彿',
-    defaultValue: ''
-  },*/
-  {
-    type: 'select',
-    dataIndex: 'status',
-    label: '鐘舵��',
-    placeholder: '璇烽�夋嫨',
-    defaultValue: '1',
-    options: [
-      {
-        label: '鍚敤',
-        value: '1'
-      },
-      {
-        label: '绂佺敤',
-        value: '0'
-      }
-    ]
-  }
-]
diff --git a/admin-web/src/views/projectConfig/kanbanConfig/nodeChoose.vue b/admin-web/src/views/projectConfig/kanbanConfig/nodeChoose.vue
deleted file mode 100644
index 054bfa3..0000000
--- a/admin-web/src/views/projectConfig/kanbanConfig/nodeChoose.vue
+++ /dev/null
@@ -1,129 +0,0 @@
-<template>
-  <win-md :title="setting.title" @close="close" :width="'800px'">
-    <div style="min-height: 300px">
-      <el-table
-        v-loading="loading"
-        border
-        :data="tableData"
-        style="width: 100%;margin-top: 15px">
-        <el-table-column
-          prop="tempProjectName"
-          align="center"
-          width="200"
-          label="妯℃澘"/>
-        <el-table-column
-          align="center"
-          label="閫夋嫨鑺傜偣">
-          <template slot-scope="{row,$index}">
-            <el-cascader
-              :key="$index"
-              style="width: 100%;"
-              v-model="row.tempStageNodeIds"
-              :options="row.options"
-              :show-all-levels="false"
-              :props="{ multiple: true, emitPath: false,value:'id', label:'name'}"
-              clearable></el-cascader>
-          </template>
-        </el-table-column>
-      </el-table>
-    </div>
-
-    <div slot="footer" align="center" class="dialog-footer">
-      <my-button name="鍙栨秷" site="form" @click="close"/>
-      <my-button name="淇濆瓨" site="form" @click="save"/>
-    </div>
-  </win-md>
-</template>
-
-<script>
-import winMd from '@/components/win/win-md'
-import myButton from '@/components/myButton/myButton'
-import {getList, getTree, upd} from "@/api/projectConfig/kanbanNode";
-
-export default {
-  name: 'nodeChoose',
-  components: {winMd, myButton},
-  props: {
-    // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍
-    // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦
-    // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁
-    setting: {
-      type: Object,
-      default: () => {
-      }
-    }
-  },
-  data() {
-    return {
-      loading: false,
-      options: [],
-      tableData: []
-    }
-  },
-  mounted() {
-  },
-  created() {
-    this.getList()
-  },
-  methods: {
-    getList() {
-      this.loading = true
-      getList({id: this.setting.id}).then(res => {
-        let count = res.length
-        res.map((item) => {
-          getTree({tempProjectId: item.id}).then(ret => {
-            item.options = ret
-            count--
-            if (count < 1) {
-              this.tableData = res
-              this.loading = false
-            }
-          })
-        })
-      })
-    },
-    close() {
-      this.loading = false
-      this.tableData = []
-      this.$emit('close')
-    },
-    save() {
-      let arr = []
-      if (this.tableData.every(item => item.tempStageNodeIds.length === 0)) {
-        this.$modal.msgError('璇烽�夋嫨鑺傜偣')
-        return;
-      }
-      for (let i = 0; i < this.tableData.length; i++) {
-        const item = this.tableData[i]
-        item.tempStageNodeIds.map(node => {
-          item.tempStageNodeId = node
-          arr.push({...item})
-        })
-      }
-      arr.map(item => {
-        item.tempProjectId = item.id
-        delete item.tempStageNodeIds
-        delete item.id
-        delete item.options
-        delete item.tempProjectName
-      })
-      this.loading = true
-      upd({
-        id: this.setting.id,
-        tempProjectBoardNode: arr
-      }).then(res => {
-        this.loading = false
-        if (res) {
-          this.$message.success('淇濆瓨鎴愬姛锛�')
-          this.close()
-          this.$emit('search')
-        } else {
-          this.$message.error('淇濆瓨澶辫触')
-        }
-      }).catch(() => {
-        this.loading = false
-      })
-    }
-  }
-}
-</script>
diff --git a/admin-web/src/views/projectConfig/stageConfig/edit.vue b/admin-web/src/views/projectConfig/stageConfig/edit.vue
deleted file mode 100644
index c99c81b..0000000
--- a/admin-web/src/views/projectConfig/stageConfig/edit.vue
+++ /dev/null
@@ -1,116 +0,0 @@
-<template>
-  <win-sm :title="setting.title" @close="close" :width="'800px'">
-    <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
-      <el-form-item label="闃舵鍚嶇О" prop="stageName">
-        <el-input v-model="formData.stageName" clearable maxlength="32" show-word-limit style="width: 100%"/>
-      </el-form-item>
-      <el-form-item label="灞曠ず椤哄簭" prop="sort">
-        <el-input-number v-model="formData.sort" clearable :min="1"/>
-      </el-form-item>
-      <el-form-item label="鐘舵��" prop="status">
-        <el-radio-group v-model="formData.status">
-          <el-radio :label="1" border>鍚敤</el-radio>
-          <el-radio :label="0" border>绂佺敤</el-radio>
-        </el-radio-group>
-      </el-form-item>
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input
-          v-model="formData.remark"
-          type="textarea"
-          :rows="3"
-          maxlength="200"
-          show-word-limit
-        />
-      </el-form-item>
-    </el-form>
-    <div slot="footer" align="center" class="dialog-footer">
-      <my-button name="鍙栨秷" site="form" @click="close"/>
-      <my-button name="淇濆瓨" site="form" @click="save"/>
-    </div>
-  </win-sm>
-</template>
-
-<script>
-import winSm from '@/components/win/win-sm'
-import myButton from '@/components/myButton/myButton'
-import * as stage from "@/api/projectConfig/stageConfig";
-
-export default {
-  name: 'edit',
-  components: {winSm, myButton},
-  props: {
-    // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍
-    // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦
-    // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁
-    setting: {
-      type: Object,
-      default: () => {
-      }
-    }
-  },
-  data() {
-    return {
-      loading: false,
-      formData: {
-        stageName: '',
-        sort: 1,
-        status: 1,
-        remark: '',
-      },
-      rules: {
-        stageName: [
-          {required: true, message: '璇疯緭鍏ラ樁娈靛悕绉�', trigger: 'blur'}
-        ],
-      }
-    }
-  },
-  created() {
-    this.loading = true
-    this.getInfo()
-  },
-  methods: {
-    getInfo() {
-      if (this.setting.id != null) {
-        // 鏌ヨ鏁版嵁
-        stage.getDetail({id: this.setting.id}).then(res => {
-          this.loading = false
-          this.formData = Object.assign(this.formData, res)
-        })
-      }else{
-        this.loading = false
-      }
-    },
-    close() {
-      this.formData = {
-        stageName: '',
-        sort: 1,
-        status: 1,
-        remark: '',
-      }
-      this.$emit('close')
-    },
-    save() {
-      this.$refs.ruleForm.validate((valid) => {
-        if (valid) {
-          const params = Object.assign({}, this.formData)
-          this.loading = true
-          stage[params.id?'upd':'add'](params).then(res => {
-            this.loading = false
-            if (res) {
-              this.$message.success('淇濆瓨鎴愬姛锛�')
-              this.close()
-              this.$emit('search')
-            } else {
-              this.$message.error('淇濆瓨澶辫触')
-            }
-          }).catch(()=>{
-            this.loading = false
-          })
-        } else {
-          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
-        }
-      })
-    }
-  }
-}
-</script>
diff --git a/admin-web/src/views/projectConfig/stageConfig/index.vue b/admin-web/src/views/projectConfig/stageConfig/index.vue
deleted file mode 100644
index 8440bb1..0000000
--- a/admin-web/src/views/projectConfig/stageConfig/index.vue
+++ /dev/null
@@ -1,191 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-card class="box-card" shadow="never">
-      <div class="filter-container" style="margin-bottom: 10px">
-        <my-search ref="searchBar" :items="items" @search="filterForm"></my-search>
-      </div>
-      <!--鍒楄〃-->
-      <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
-    </el-card>
-    <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"></edit>
-    <nodeConfig v-if="nodeSetting.show" :setting="nodeSetting" @close="nodeSetting.show = false" @search="search"></nodeConfig>
-  </div>
-</template>
-
-<script>
-import MyTableV2 from '@/components/myTable/myTableV2';
-import SettingIplatform from '@/utils/settingIplatform';
-import items from './items';
-import edit from './edit'
-import nodeConfig from './node/node'
-import {del, updStatus} from "@/api/projectConfig/stageConfig";
-
-export default {
-  components: {MyTableV2, edit, nodeConfig},
-  data() {
-    return {
-      // 鎼滅储鏉′欢
-      items: items,
-      filterFrom: {
-        stageName: '',
-        status: '1',
-      },
-      //鏂板缂栬緫
-      editSetting: {
-        title: '',
-        id: '',
-        show: false,
-      },
-      //鑺傜偣璁剧疆
-      nodeSetting: {
-        title: '鑺傜偣璁剧疆',
-        stageId: '',
-        show: false,
-      },
-      // 琛ㄦ牸鏁版嵁
-      table: {
-        showIndex: true, // 鏄惁鏄剧ず搴忓彿
-        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
-        url: SettingIplatform.apiBaseURL + '/pc/p/temp/stage/list', // 璇锋眰鍦板潃
-        // 宸ュ叿鏉�
-        tools: {
-          columnsCtrl: {
-            // 鍒楁帶鍒舵寜閽�
-            show: false,
-          },
-          generalExport: {
-            // 閫氱敤瀵煎嚭鎸夐挳
-            show: false,
-          },
-          // 鑷畾涔夊伐鍏锋潯鎸夐挳
-          custom: [
-            {
-              name: '鏂板',
-              click: () => {
-                this.showAdd(null);
-              },
-            },
-          ],
-        },
-        // 鍒椾俊鎭�
-        columns: [
-          {title: '闃舵鍚嶇О', field: 'stageName', align: 'left', width: '200px'},
-          {title: '椤哄簭鍙�', field: 'sort', align: 'center', width: '80px'},
-          {title: '鍖呭惈鑺傜偣', field: 'nodeName', align: 'left'},
-          {
-            field: 'status',
-            title: '鐘舵��',
-            align: 'center',
-            width: 80,
-            switch: (row) => {
-              return {
-                value: row.status === 1, // 寮�
-                label: row.status === 1 ? '鍚敤' : '绂佺敤', // 寮�鐨勬弿杩�
-                click: () => {
-                  // 鐐瑰嚮浜嬩欢
-                  this.updState(row);
-                },
-              };
-            },
-          },
-        ],
-        // 鎿嶄綔淇℃伅
-        operation: {
-          show: true, // 鏄剧ず鎿嶄綔鍒�
-          width: '250', // 鍒楀
-          attr: [
-            {
-              title: '缂栬緫',
-              events: (row) => {
-                this.showAdd(row.id);
-              },
-            },
-            {
-              title: '鑺傜偣璁剧疆',
-              type: 'warning',
-              events: (row) => {
-                this.showNode(row.id);
-              },
-            },
-            {
-              title: '鍒犻櫎',
-              events: (row) => {
-                this.handleDelete(row);
-              },
-            },
-          ],
-        },
-        paging: {
-          show: true, // 鏄剧ず鍒嗛〉
-          // 鍒嗛〉淇℃伅
-          page: {
-            small: false,
-            pageNum: 1,
-            pageSize: 10,
-            total: 0,
-          },
-        },
-      },
-    };
-  },
-  mounted() {
-  },
-  methods: {
-    // 鏌ヨtable鍒楄〃
-    search(pageNum) {
-      if (pageNum != undefined) {
-        this.$refs.myTable.search(pageNum);
-      } else {
-        this.$refs.myTable.search();
-      }
-    },
-    filterForm(params) {
-      this.filterFrom = Object.assign(this.filterFrom, params);
-      this.search();
-    },
-    //娣诲姞銆佺紪杈�
-    showAdd(id) {
-      let title = '娣诲姞';
-      if (id != null) {
-        title = '缂栬緫';
-      }
-      this.editSetting.id = id;
-      this.editSetting.title = title;
-      this.editSetting.show = true;
-    },
-    updState(row) {
-      let text = row.status === 0 ? "鍚敤" : "绂佺敤";
-      this.$modal.confirm('纭瑕�' + text + '"' + row.stageName + '"鍚楋紵').then(() => {
-        let status = row.status === 1 ? 0 : 1
-        updStatus({
-          id: row.id,
-          status
-        }).then(res => {
-          if (res) {
-            row.status = row.status === 1 ? 0 : 1
-            this.$modal.msgSuccess(text + "鎴愬姛");
-            this.search()
-          }
-        })
-      })
-    },
-    showNode(id) {
-      this.nodeSetting.stageId = id;
-      this.nodeSetting.show = true;
-    },
-    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
-    handleDelete(row) {
-      this.$confirm('鏄惁纭鍒犻櫎"' + row.stageName + '"闃舵锛�', {
-        type: 'warning'
-      }).then(() => {
-        del({id: row.id}).then(res => {
-          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-          this.search()
-        })
-      })
-    },
-  },
-};
-</script>
-
-<style scoped></style>
diff --git a/admin-web/src/views/projectConfig/stageConfig/items.js b/admin-web/src/views/projectConfig/stageConfig/items.js
deleted file mode 100644
index acdebae..0000000
--- a/admin-web/src/views/projectConfig/stageConfig/items.js
+++ /dev/null
@@ -1,26 +0,0 @@
-export default [
-  {
-    type: 'text',
-    dataIndex: 'stageName',
-    label: '闃舵鍚嶇О',
-    placeholder: '璇疯緭鍏�',
-    defaultValue: ''
-  },
-  {
-    type: 'select',
-    dataIndex: 'status',
-    label: '鐘舵��',
-    placeholder: '璇烽�夋嫨',
-    defaultValue: '1',
-    options: [
-      {
-        label: '鍚敤',
-        value: '1'
-      },
-      {
-        label: '绂佺敤',
-        value: '0'
-      }
-    ]
-  }
-]
diff --git a/admin-web/src/views/projectConfig/stageConfig/node/edit.vue b/admin-web/src/views/projectConfig/stageConfig/node/edit.vue
deleted file mode 100644
index d8624c2..0000000
--- a/admin-web/src/views/projectConfig/stageConfig/node/edit.vue
+++ /dev/null
@@ -1,118 +0,0 @@
-<template>
-  <win-sm :title="setting.title" @close="close" :width="'800px'">
-    <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
-      <el-form-item label="鑺傜偣鍚嶇О" prop="nodeName">
-        <el-input v-model="formData.nodeName" clearable maxlength="32" show-word-limit style="width: 100%"/>
-      </el-form-item>
-      <el-form-item label="灞曠ず椤哄簭" prop="sort">
-        <el-input-number v-model="formData.sort" clearable :min="1"/>
-      </el-form-item>
-      <el-form-item label="鐘舵��" prop="status">
-        <el-radio-group v-model="formData.status">
-          <el-radio :label="1" border>鍚敤</el-radio>
-          <el-radio :label="0" border>绂佺敤</el-radio>
-        </el-radio-group>
-      </el-form-item>
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input
-          v-model="formData.remark"
-          type="textarea"
-          :rows="3"
-          maxlength="200"
-          show-word-limit
-        />
-      </el-form-item>
-    </el-form>
-    <div slot="footer" align="center" class="dialog-footer">
-      <my-button name="鍙栨秷" site="form" @click="close"/>
-      <my-button name="淇濆瓨" site="form" @click="save"/>
-    </div>
-  </win-sm>
-</template>
-
-<script>
-import winSm from '@/components/win/win-sm'
-import myButton from '@/components/myButton/myButton'
-import * as node from "@/api/projectConfig/stageNode";
-
-export default {
-  name: 'edit',
-  components: {winSm, myButton},
-  props: {
-    // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍
-    // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦
-    // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁
-    setting: {
-      type: Object,
-      default: () => {
-      }
-    }
-  },
-  data() {
-    return {
-      loading: false,
-      formData: {
-        nodeName: '',
-        sort: 1,
-        status: 1,
-        remark: '',
-      },
-      rules: {
-        nodeName: [
-          {required: true, message: '璇疯緭鍏ヨ妭鐐瑰悕绉�', trigger: 'blur'}
-        ],
-      }
-    }
-  },
-  created() {
-    this.loading = true
-    this.getInfo()
-  },
-  methods: {
-    getInfo() {
-      this.title = this.setting.title
-      if (this.setting.id != null) {
-        // 鏌ヨ鏁版嵁
-        node.getDetail({id: this.setting.id}).then(res => {
-          this.loading = false
-          this.formData = Object.assign(this.formData, res)
-        })
-      }else{
-        this.loading = false
-      }
-    },
-    close() {
-      this.formData = {
-        nodeName: '',
-        sort: 1,
-        status: 1,
-        remark: '',
-      }
-      this.$emit('close')
-    },
-    save() {
-      this.$refs.ruleForm.validate((valid) => {
-        if (valid) {
-          const params = Object.assign({}, this.formData)
-          params.stageId = this.setting.stageId
-          this.loading = true
-          node[params.id?'upd':'add'](params).then(res => {
-            this.loading = false
-            if (res) {
-              this.$message.success('淇濆瓨鎴愬姛锛�')
-              this.close()
-              this.$emit('search')
-            } else {
-              this.$message.error('淇濆瓨澶辫触')
-            }
-          }).catch(()=>{
-            this.loading = false
-          })
-        } else {
-          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
-        }
-      })
-    }
-  }
-}
-</script>
diff --git a/admin-web/src/views/projectConfig/stageConfig/node/items.js b/admin-web/src/views/projectConfig/stageConfig/node/items.js
deleted file mode 100644
index 3b75f44..0000000
--- a/admin-web/src/views/projectConfig/stageConfig/node/items.js
+++ /dev/null
@@ -1,26 +0,0 @@
-export default [
-  {
-    type: 'text',
-    dataIndex: 'nodeName',
-    label: '鑺傜偣鍚嶇О',
-    placeholder: '璇疯緭鍏�',
-    defaultValue: ''
-  },
-  {
-    type: 'select',
-    dataIndex: 'status',
-    label: '鐘舵��',
-    placeholder: '璇烽�夋嫨',
-    defaultValue: '1',
-    options: [
-      {
-        label: '鍚敤',
-        value: '1'
-      },
-      {
-        label: '绂佺敤',
-        value: '0'
-      }
-    ]
-  }
-]
diff --git a/admin-web/src/views/projectConfig/stageConfig/node/node.vue b/admin-web/src/views/projectConfig/stageConfig/node/node.vue
deleted file mode 100644
index 75a2212..0000000
--- a/admin-web/src/views/projectConfig/stageConfig/node/node.vue
+++ /dev/null
@@ -1,192 +0,0 @@
-<template>
-  <win-lg :title="setting.title" @close="close" :width="'800px'">
-    <el-card class="box-card" shadow="never">
-      <div class="filter-container" style="margin-bottom: 10px">
-        <my-search ref="searchBar" :items="items" @search="filterForm"></my-search>
-      </div>
-      <!--鍒楄〃-->
-      <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
-    </el-card>
-    <edit v-if="editSetting.show" :setting="editSetting" @close="closeNode" @search="search"></edit>
-  </win-lg>
-</template>
-
-<script>
-import MyTableV2 from '@/components/myTable/myTableV2';
-import winLg from '@/components/win/win-lg'
-import SettingIplatform from '@/utils/settingIplatform';
-import items from './items';
-import edit from './edit'
-import {del, updStatus} from "@/api/projectConfig/stageNode";
-
-export default {
-  name: 'nodeConfig',
-  components: {MyTableV2, winLg, edit},
-  props: {
-    // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍
-    // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦
-    // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁
-    setting: {
-      type: Object,
-      default: () => {
-      }
-    }
-  },
-  data() {
-    return {
-      // 鎼滅储鏉′欢
-      items: items,
-      filterFrom: {
-        nodeName: '',
-        status: '1',
-      },
-      //鏂板缂栬緫
-      editSetting: {
-        title: '',
-        id: '',
-        show: false,
-      },
-      // 琛ㄦ牸鏁版嵁
-      table: {
-        showIndex: true, // 鏄惁鏄剧ず搴忓彿
-        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
-        url: SettingIplatform.apiBaseURL + '/pc/p/temp/stage/node/list?stageId='+this.setting.stageId, // 璇锋眰鍦板潃
-        // 宸ュ叿鏉�
-        tools: {
-          columnsCtrl: {
-            // 鍒楁帶鍒舵寜閽�
-            show: false,
-          },
-          generalExport: {
-            // 閫氱敤瀵煎嚭鎸夐挳
-            show: false,
-          },
-          // 鑷畾涔夊伐鍏锋潯鎸夐挳
-          custom: [
-            {
-              name: '鏂板',
-              click: () => {
-                this.showAdd(null);
-              },
-            },
-          ],
-        },
-        // 鍒椾俊鎭�
-        columns: [
-          {title: '鑺傜偣鍚嶇О', field: 'nodeName', align: 'center'},
-          {title: '椤哄簭鍙�', field: 'sort', align: 'center'},
-          {title: '璇存槑', field: 'remark', align: 'center'},
-          {
-            field: 'status',
-            title: '鐘舵��',
-            align: 'center',
-            width: 80,
-            switch: (row) => {
-              return {
-                value: row.status === 1, // 寮�
-                label: row.status === 1 ? '鍚敤' : '绂佺敤', // 寮�鐨勬弿杩�
-                click: () => {
-                  // 鐐瑰嚮浜嬩欢
-                  this.updState(row);
-                },
-              };
-            },
-          },
-        ],
-        // 鎿嶄綔淇℃伅
-        operation: {
-          show: true, // 鏄剧ず鎿嶄綔鍒�
-          width: '200', // 鍒楀
-          attr: [
-            {
-              title: '缂栬緫',
-              events: (row) => {
-                this.showAdd(row.id);
-              },
-            },
-            {
-              title: '鍒犻櫎',
-              events: (row) => {
-                this.handleDelete(row);
-              },
-            },
-          ],
-        },
-        paging: {
-          show: true, // 鏄剧ず鍒嗛〉
-          // 鍒嗛〉淇℃伅
-          page: {
-            small: false,
-            pageNum: 1,
-            pageSize: 10,
-            total: 0,
-          },
-        },
-      },
-    };
-  },
-  mounted() {
-  },
-  methods: {
-    close() {
-      this.$emit('close')
-    },
-    closeNode() {
-      this.editSetting.show = false
-      this.$emit('search')
-    },
-    // 鏌ヨtable鍒楄〃
-    search(pageNum) {
-      if (pageNum != undefined) {
-        this.$refs.myTable.search(pageNum);
-      } else {
-        this.$refs.myTable.search();
-      }
-    },
-    filterForm(params) {
-      this.filterFrom = Object.assign(this.filterFrom, params);
-      this.search();
-    },
-    //娣诲姞銆佺紪杈�
-    showAdd(id) {
-      let title = '娣诲姞';
-      if (id != null) {
-        title = '缂栬緫';
-      }
-      this.editSetting.id = id||this.setting.id;
-      this.editSetting.stageId = this.setting.stageId;
-      this.editSetting.title = title;
-      this.editSetting.show = true;
-    },
-    updState(row) {
-      let text = row.status === 0 ? "鍚敤" : "绂佺敤";
-      this.$modal.confirm('纭瑕�' + text + '"' + row.nodeName + '"鍚楋紵').then(() => {
-        let status = row.status === 1 ? 0 : 1
-        updStatus({
-          id: row.id,
-          status
-        }).then(res => {
-          if (res) {
-            row.status = row.status === 1 ? 0 : 1
-            this.$modal.msgSuccess(text + "鎴愬姛");
-            this.search()
-          }
-        })
-      })
-    },
-    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
-    handleDelete(row) {
-      this.$confirm('鏄惁纭鍒犻櫎"' + row.nodeName + '"闃舵锛�', {
-        type: 'warning'
-      }).then(() => {
-        del({id:row.id}).then(res=>{
-          this.$modal.msgSuccess( "鍒犻櫎鎴愬姛");
-          this.search()
-        })
-      })
-    },
-  },
-};
-</script>
-
-<style scoped></style>
diff --git a/admin-web/src/views/projectConfig/warningConfig/chooseItems.js b/admin-web/src/views/projectConfig/warningConfig/chooseItems.js
deleted file mode 100644
index e478dfd..0000000
--- a/admin-web/src/views/projectConfig/warningConfig/chooseItems.js
+++ /dev/null
@@ -1,16 +0,0 @@
-export default [
-  {
-    type: 'text',
-    dataIndex: 'userName',
-    label: '浜哄憳濮撳悕',
-    placeholder: "璇疯緭鍏�",
-    defaultValue: ''
-  },
-  {
-    type: 'text',
-    dataIndex: 'userPhone',
-    label: '鎵嬫満鍙�',
-    placeholder: "璇疯緭鍏�",
-    defaultValue: ''
-  }
-]
diff --git a/admin-web/src/views/projectConfig/warningConfig/chooseUser.vue b/admin-web/src/views/projectConfig/warningConfig/chooseUser.vue
deleted file mode 100644
index 6e0140f..0000000
--- a/admin-web/src/views/projectConfig/warningConfig/chooseUser.vue
+++ /dev/null
@@ -1,206 +0,0 @@
-<template>
-  <win-md :title="setting.title" @close="close" width="1000px">
-    <el-row :gutter="15">
-      <!--宸︿晶鏍戝舰寮�濮�-->
-      <el-col :span="6">
-        <el-card style="height: calc(100vh - 400px);overflow-y: auto" shadow="never">
-          <my-tree ref="searchTree" :tree-list="treeDataList" @setNode="nodeClick" @search="search"></my-tree>
-        </el-card>
-      </el-col>
-      <!--宸︿晶鏍戝舰缁撴潫-->
-      <!--鍙充晶鍒楄〃寮�濮�-->
-      <el-col :span="18">
-        <el-card class="box-card" shadow="never">
-          <!--鎼滅储鏉′欢-->
-          <div class="filter-container">
-            <my-search ref="searchBar" :items="chooseItems" @search="fifterForm"></my-search>
-          </div>
-          <el-row style="margin-top: 15px">
-            <el-col>
-              <!--鍒楄〃-->
-              <my-table ref="myTable" :parentSelectionsObject="setting.selections" :filter="filterFrom" :table="table"/>
-            </el-col>
-          </el-row>
-        </el-card>
-      </el-col>
-    </el-row>
-    <div slot="footer" align="center" class="dialog-footer">
-      <my-button name="鍙栨秷" site="form" @click="close"/>
-      <my-button name="淇濆瓨" site="form" @click="save"/>
-    </div>
-  </win-md>
-</template>
-
-<script>
-import winMd from '@/components/win/win-md'
-import myButton from '@/components/myButton/myButton'
-import myTree from '@/components/myTree/index';
-import MyTable from '@/components/myTable/myTable';
-import SettingIplatform from "@/utils/settingIplatform";
-import * as DateFormatter from "@/utils/DateFormatter";
-import {getTree} from "@/api/baseSetting/finsystenant";
-import chooseItems from './chooseItems'
-
-export default {
-  name: "chooseUser",
-  components: {winMd, myButton, MyTable, myTree},
-  props: {
-    // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍
-    // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦
-    // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁
-    setting: {
-      type: Object,
-      default: () => {
-      }
-    }
-  },
-  data() {
-    return {
-      chooseItems: chooseItems,
-      // 鏍戞暟鎹�
-      treeDataList: [],
-      // 鎼滅储鏉′欢
-      filterFrom: {
-        tenantCode: 0,
-        trnantId: 0,
-        userName: null,
-        userPhone: null,
-      },
-      // 琛ㄦ牸鏁版嵁
-      table: {
-        showIndex: true, // 鏄惁鏄剧ず搴忓彿
-        showCheckBox: true,
-        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
-        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/user/select/list?status=1', // 璇锋眰鍦板潃
-        // 宸ュ叿鏉�
-        tools: {
-          columnsCtrl: {
-            // 鍒楁帶鍒舵寜閽�
-            show: false,
-          },
-          generalExport: {
-            // 閫氱敤瀵煎嚭鎸夐挳
-            show: false,
-          },
-          // 鑷畾涔夊伐鍏锋潯鎸夐挳
-          custom: [
-            {
-              name: '鏂板',
-              click: () => {
-                this.showAdd(null);
-              },
-            },
-          ],
-        },
-        // 鍒椾俊鎭�
-        columns: [
-          {title: '浜哄憳濮撳悕', field: 'userName', align: 'left'},
-          {title: '鍛樺伐缂栧彿', field: 'userCode', align: 'left'},
-          {title: '鎵嬫満鍙�', field: 'userPhone', align: 'center', width: 120},
-          {
-            title: '鍒涘缓鏃堕棿',
-            field: 'createTime',
-            align: 'center',
-            width: 160,
-            formatter: (row) => {
-              return {value: DateFormatter.LongToDateTime(row.createTime)};
-            },
-          },
-        ],
-        // 鎿嶄綔淇℃伅
-        operation: {
-          show: false, // 鏄剧ず鎿嶄綔鍒�
-        },
-        paging: {
-          show: true, // 鏄剧ず鍒嗛〉
-          // 鍒嗛〉淇℃伅
-          page: {
-            small: false,
-            pageNum: 1,
-            pageSize: 10,
-            total: 0,
-          },
-        },
-      },
-    }
-  },
-  created() {
-    // 鑾峰彇鏈烘瀯鏍�
-    this.initTreeData();
-  },
-  mounted() {
-  },
-  methods: {
-    close() {
-      this.$emit('close')
-    },
-    save() {
-      let checkUsers = this.$refs.myTable.getChedkObject()
-      if (checkUsers.length === 0) {
-        this.$message.error('璇烽�夋嫨浜哄憳')
-        return false
-      }
-      this.$emit('checkUsers', checkUsers.map(item => {
-        return {
-          id: item.id,
-          userName: item.userName
-        }
-      }))
-    },
-    // 宸︿晶鏍戝垵濮嬪寲
-    initTreeData() {
-      getTree().then((res) => {
-        const content = res || [];
-        this.treeDataList.splice(0, this.treeDataList.length);
-        this.treeDataList = content;
-        if (this.treeDataList && this.treeDataList.length > 0) {
-          this.tenantId = this.treeDataList[0].id;
-          this.tenantCode = this.treeDataList[0].code;
-        }
-      });
-    },
-    nodeClick(param) {
-      param = param || {};
-      this.p = Object.assign(
-        {},
-        {
-          id: param.id,
-          name: param.name,
-          code: param.code,
-        },
-      );
-      if (this.p.code != undefined && this.p.code != null) {
-        this.filterFrom.tenantCode = this.p.code;
-        this.tenantId = this.p.id;
-      } else {
-        this.filterFrom.tenantCode = 0;
-      }
-      this.table.paging.page.pageNum = 1;
-      this.search(1);
-    },
-    // 鏌ヨtable鍒楄〃
-    search(pageNum) {
-      if (pageNum != undefined) {
-        this.$refs.myTable.search(pageNum);
-      } else {
-        this.$refs.myTable.search();
-      }
-    },
-    // 閲嶇疆
-    reset() {
-      this.filterFrom.tenantCode = null;
-      this.filterFrom.userName = null;
-      this.filterFrom.userPhone = null;
-      this.search(1);
-    },
-    fifterForm(params) {
-      this.filterFrom = Object.assign(this.filterFrom, params);
-      this.search();
-    },
-  }
-}
-</script>
-
-<style scoped>
-
-</style>
diff --git a/admin-web/src/views/projectConfig/warningConfig/edit.vue b/admin-web/src/views/projectConfig/warningConfig/edit.vue
deleted file mode 100644
index 6d0dcc8..0000000
--- a/admin-web/src/views/projectConfig/warningConfig/edit.vue
+++ /dev/null
@@ -1,330 +0,0 @@
-<template>
-  <win-md :title="setting.title" @close="close" :width="'800px'">
-    <el-form v-loading="loading" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
-      <el-form-item label="妯℃澘鍚嶇О" prop="tempExpirationNotifyName">
-        <el-input v-model="formData.tempExpirationNotifyName" placeholder="" clearable maxlength="32" show-word-limit style="width: 400px"/>
-      </el-form-item>
-      <h1>涓存湡鍓嶉璀�</h1>
-      <el-form-item label="涓存湡鍓�" prop="expireBefore1">
-        <el-input-number v-model="formData.expireBefore1" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number>
-        <span style="margin-right: 10px">澶�</span>
-        <el-checkbox v-model="formData.beforeManagerNotify1" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox>
-      </el-form-item>
-      <el-form-item label="閫氱煡浜哄憳" prop="beforeManagerNotifyUser1">
-        <el-button @click="chooseUser('beforeManagerNotifyUser1')" type="primary" plain>閫夋嫨浜哄憳</el-button>
-        <el-tag
-          v-for="(item,i) in formData.beforeManagerNotifyUser1"
-          :key="item.id"
-          type="danger"
-          closable
-          @close="closeUser('beforeManagerNotifyUser1',i)"
-          effect="plain">
-          {{ item.userName }}
-        </el-tag>
-      </el-form-item>
-      <el-form-item label="涓存湡鍓�" prop="expireBefore2">
-        <el-input-number v-model="formData.expireBefore2" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number>
-        <span style="margin-right: 10px">澶�</span>
-        <el-checkbox v-model="formData.beforeManagerNotify2" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox>
-      </el-form-item>
-      <el-form-item label="閫氱煡浜哄憳" prop="beforeManagerNotifyUser2">
-        <el-button @click="chooseUser('beforeManagerNotifyUser2')" type="primary" plain>閫夋嫨浜哄憳</el-button>
-        <el-tag
-          v-for="(item,i) in formData.beforeManagerNotifyUser2"
-          :key="item.id"
-          type="danger"
-          closable
-          @close="closeUser('beforeManagerNotifyUser2',i)"
-          effect="plain">
-          {{ item.userName }}
-        </el-tag>
-      </el-form-item>
-      <el-form-item label="涓存湡鍓�" prop="expireBefore3">
-        <el-input-number v-model="formData.expireBefore3" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number>
-        <span style="margin-right: 10px">澶�</span>
-        <el-checkbox v-model="formData.beforeManagerNotify3" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox>
-      </el-form-item>
-      <el-form-item label="閫氱煡浜哄憳" prop="beforeManagerNotifyUser3">
-        <el-button @click="chooseUser('beforeManagerNotifyUser3')" type="primary" plain>閫夋嫨浜哄憳</el-button>
-        <el-tag
-          v-for="(item,i) in formData.beforeManagerNotifyUser3"
-          :key="item.id"
-          type="danger"
-          closable
-          @close="closeUser('beforeManagerNotifyUser3',i)"
-          effect="plain">
-          {{ item.userName }}
-        </el-tag>
-      </el-form-item>
-      <h1>瓒呮湡鍚庨璀�</h1>
-      <el-form-item label="瓒呮湡鍚�" prop="expireAfter1">
-        <el-input-number v-model="formData.expireAfter1" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number>
-        <span style="margin-right: 10px">澶�</span>
-        <el-checkbox v-model="formData.afterManagerNotify1" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox>
-      </el-form-item>
-      <el-form-item label="閫氱煡浜哄憳" prop="afterManagerNotifyUser1">
-        <el-button @click="chooseUser('afterManagerNotifyUser1')" type="primary" plain>閫夋嫨浜哄憳</el-button>
-        <el-tag
-          v-for="(item,i) in formData.afterManagerNotifyUser1"
-          :key="item.id"
-          type="danger"
-          closable
-          @close="closeUser('afterManagerNotifyUser1',i)"
-          effect="plain">
-          {{ item.userName }}
-        </el-tag>
-      </el-form-item>
-      <el-form-item label="瓒呮湡鍚�" prop="expireAfter2">
-        <el-input-number v-model="formData.expireAfter2" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number>
-        <span style="margin-right: 10px">澶�</span>
-        <el-checkbox v-model="formData.afterManagerNotify2" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox>
-      </el-form-item>
-      <el-form-item label="閫氱煡浜哄憳" prop="afterManagerNotifyUser2">
-        <el-button @click="chooseUser('afterManagerNotifyUser2')" type="primary" plain>閫夋嫨浜哄憳</el-button>
-        <el-tag
-          v-for="(item,i) in formData.afterManagerNotifyUser2"
-          :key="item.id"
-          type="danger"
-          closable
-          @close="closeUser('afterManagerNotifyUser2',i)"
-          effect="plain">
-          {{ item.userName }}
-        </el-tag>
-      </el-form-item>
-      <el-form-item label="瓒呮湡鍚�" prop="expireAfter3">
-        <el-input-number v-model="formData.expireAfter3" :controls="false" :min="1" :max="10" :step="1" step-strictly style="width: 100px"></el-input-number>
-        <span style="margin-right: 10px">澶�</span>
-        <el-checkbox v-model="formData.afterManagerNotify3" :true-label="1" :false-label="0">閫氱煡椤圭洰缁忕悊</el-checkbox>
-      </el-form-item>
-      <el-form-item label="閫氱煡浜哄憳" prop="afterManagerNotifyUser3">
-        <el-button @click="chooseUser('afterManagerNotifyUser3')" type="primary" plain>閫夋嫨浜哄憳</el-button>
-        <el-tag
-          v-for="(item,i) in formData.afterManagerNotifyUser3"
-          :key="item.id"
-          type="danger"
-          closable
-          @close="closeUser('afterManagerNotifyUser3',i)"
-          effect="plain">
-          {{ item.userName }}
-        </el-tag>
-      </el-form-item>
-      <h1>棰勮鏂瑰紡</h1>
-      <div style="margin-left: 50px;margin-bottom: 20px">
-        <el-checkbox v-model="formData.notifyWx" :true-label="1" :false-label="0">寰俊娑堟伅</el-checkbox>
-        <div style="margin-top: 20px">
-          <el-checkbox v-model="formData.notifyMobMsg" :true-label="1" :false-label="0">鐭俊</el-checkbox>
-          <el-radio v-model="formData.notifyMobMsgWay" :label="0">鑷姩鍙戦��</el-radio>
-          <el-radio v-model="formData.notifyMobMsgWay" :label="1">鎵嬪姩鍙戦��</el-radio>
-        </div>
-      </div>
-      <template v-if="formData.notifyMobMsg===1">
-        <el-form-item label="鎵嬫満鍙�" prop="notifyMob">
-          <el-input
-            v-model="formData.notifyMob"
-            type="textarea"
-            :rows="3"
-            maxlength="1024"
-            show-word-limit
-          />
-        </el-form-item>
-      </template>
-      <el-form-item label="鍙戦�佹椂闂�" prop="notifyTime">
-        <el-select v-model="formData.notifyTime" placeholder="">
-          <el-option
-            v-for="i in 24"
-            :key="i"
-            :label="(i-1)+'鐐�'"
-            :value="i-1">
-          </el-option>
-        </el-select>
-      </el-form-item>
-
-    </el-form>
-    <div slot="footer" align="center" class="dialog-footer">
-      <my-button name="鍙栨秷" site="form" @click="close"/>
-      <my-button name="淇濆瓨" site="form" @click="save"/>
-    </div>
-    <chooseUser v-if="chooseSetting.show" :setting="chooseSetting" @close="chooseSetting.show = false" @checkUsers="checkUsers"></chooseUser>
-  </win-md>
-</template>
-
-<script>
-import winMd from '@/components/win/win-md'
-import myButton from '@/components/myButton/myButton'
-import chooseUser from "@/views/projectConfig/warningConfig/chooseUser";
-import * as api from "@/api/projectConfig/warningConfig";
-
-export default {
-  name: 'edit',
-  components: {winMd, myButton, chooseUser},
-  props: {
-    // setting 涓』鑷冲皯鍖呭惈鎺у埗dialog鏄剧ず鎴栭殣钘忕殑灞炴��,鍏朵綑灞炴�у彲鎷撳睍
-    // 灏嗘坊鍔�/淇敼鐨勫ぇ閲忔暟鎹強閫昏緫浠庡垪琛ㄩ〉闈腑鍒嗙鍑烘潵,閬垮厤鍒楄〃椤甸潰浠g爜杩囧,瀹℃煡鍥伴毦
-    // 鑻ユ椤甸潰椤诲洖浼犳暟鎹嚦鐖堕〉闈�,鍙湪寮曠敤缁勪欢鏃舵坊鍔犱簨浠�,鏈〉闈娇鐢╰his.$emit('浜嬩欢鍚�',鍙傛暟1,鍙傛暟2...)鍥炰紶鏁版嵁
-    setting: {
-      type: Object,
-      default: () => {
-      }
-    }
-  },
-  data() {
-    return {
-      chooseSetting: {
-        title: '閫夋嫨浜哄憳',
-        setting: [],
-        show: false
-      },
-      loading: false,
-      formData: {
-        tempExpirationNotifyName: '',
-        expireBefore1: undefined,
-        beforeManagerNotify1: '',
-        beforeManagerNotifyUser1: [],
-        expireBefore2: undefined,
-        beforeManagerNotify2: '',
-        beforeManagerNotifyUser2: [],
-        expireBefore3: undefined,
-        beforeManagerNotify3: '',
-        beforeManagerNotifyUser3: [],
-        expireAfter1: undefined,
-        afterManagerNotify1: '',
-        afterManagerNotifyUser1: [],
-        expireAfter2: undefined,
-        afterManagerNotify2: '',
-        afterManagerNotifyUser2: [],
-        expireAfter3: undefined,
-        afterManagerNotify3: '',
-        afterManagerNotifyUser3: [],
-        notifyWx: 0,
-        notifyMobMsg: 0,
-        notifyMobMsgWay: '',
-        notifyMob: '',
-        notifyTime: ''
-      },
-      rules: {
-        tempExpirationNotifyName: [
-          {required: true, message: '璇疯緭鍏ユā鏉垮悕绉�', trigger: 'blur'},
-        ],
-        notifyTime: [
-          {required: true, message: '璇烽�夋嫨鍙戦�佹椂闂�', trigger: 'blur'},
-        ]
-      },
-      cur: ''
-    }
-  },
-  created() {
-    this.loading = true
-    this.getInfo()
-  },
-  methods: {
-    chooseUser(cur) {
-      this.cur = cur
-      this.chooseSetting.selections = this.formData[cur]
-      this.chooseSetting.show = true
-    },
-    closeUser(key, i) {
-      this.formData[key].splice(i, 1)
-    },
-    checkUsers(users) {
-      console.log(users)
-      this.formData[this.cur] = users
-      this.chooseSetting.show = false
-      this.cur = ''
-    },
-    getInfo() {
-      this.title = this.setting.title
-      if (this.setting.id != null) {
-        // 鏌ヨ鏁版嵁
-        api.getDetail({id: this.setting.id}).then(res => {
-          this.loading = false
-          this.formData = Object.assign(this.formData, res)
-        })
-      } else {
-        this.loading = false
-      }
-    },
-    close() {
-      this.formData = {
-        tempExpirationNotifyName: '',
-        expireBefore1: undefined,
-        beforeManagerNotify1: '',
-        beforeManagerNotifyUser1: [],
-        expireBefore2: undefined,
-        beforeManagerNotify2: '',
-        beforeManagerNotifyUser2: [],
-        expireBefore3: undefined,
-        beforeManagerNotify3: '',
-        beforeManagerNotifyUser3: [],
-        expireAfter1: undefined,
-        afterManagerNotify1: '',
-        afterManagerNotifyUser1: [],
-        expireAfter2: undefined,
-        afterManagerNotify2: '',
-        afterManagerNotifyUser2: [],
-        expireAfter3: undefined,
-        afterManagerNotify3: '',
-        afterManagerNotifyUser3: [],
-        notifyWx: 0,
-        notifyMobMsg: 0,
-        notifyMobMsgWay: '',
-        notifyMob: '',
-        notifyTime: ''
-      }
-      this.$emit('close')
-    },
-    save() {
-      this.$refs.ruleForm.validate((valid) => {
-        if (valid) {
-          const params = Object.assign({}, this.formData)
-          let check1 = ['expireBefore1','expireBefore2','expireBefore3','expireAfter1','expireAfter2','expireAfter3']
-          let check2 = ['beforeManagerNotifyUser1','beforeManagerNotifyUser2','beforeManagerNotifyUser3','afterManagerNotifyUser1','afterManagerNotifyUser2','afterManagerNotifyUser3']
-          if(!check1.some(key=>params[key])){
-            this.$message.error('璇峰~鍐欓璀︽椂闂�')
-            return
-          }
-          if(params.notifyWx===0&&params.notifyMobMsg===0){
-            this.$message.error('璇疯缃璀︽柟寮�')
-            return
-          }
-          if(params.notifyMobMsg===1&&!check2.some(key=>params[key].length>0)&&params.notifyMob===''){
-            this.$message.error('璇疯缃�氱煡浜哄憳')
-            return
-          }
-          if(params.notifyMobMsg===0&&!check2.some(key=>params[key].length>0)){
-            this.$message.error('璇疯缃�氱煡浜哄憳')
-            return
-          }
-          if(params.notifyMobMsg===1&&params.notifyMobMsgWay===''){
-            this.$message.error('璇疯缃煭淇″彂閫佹柟寮�')
-            return
-          }
-          this.loading = true
-          api[params.id ? 'upd' : 'add'](params).then(res => {
-            this.loading = false
-            if (res) {
-              this.$message.success('淇濆瓨鎴愬姛锛�')
-              this.close()
-              this.$emit('search')
-            } else {
-              this.$message.error('淇濆瓨澶辫触')
-            }
-          }).catch(() => {
-            this.loading = false
-          })
-        } else {
-          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
-        }
-      })
-    }
-  }
-}
-</script>
-<style scoped lang="scss">
-h1 {
-  font-size: 18px;
-  color: #000;
-  font-weight: bold;
-  margin-bottom: 20px;
-  padding-left: 20px;
-}
-</style>
diff --git a/admin-web/src/views/projectConfig/warningConfig/index.vue b/admin-web/src/views/projectConfig/warningConfig/index.vue
deleted file mode 100644
index 2363542..0000000
--- a/admin-web/src/views/projectConfig/warningConfig/index.vue
+++ /dev/null
@@ -1,209 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-card class="box-card" shadow="never">
-      <div class="filter-container" style="margin-bottom: 10px">
-        <my-search ref="searchBar" :items="items" @search="filterForm"></my-search>
-      </div>
-      <!--鍒楄〃-->
-      <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
-    </el-card>
-    <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"></edit>
-  </div>
-</template>
-
-<script>
-import MyTableV2 from '@/components/myTable/myTableV2';
-import SettingIplatform from '@/utils/settingIplatform';
-import items from './items';
-import edit from './edit'
-import {del, updStatus} from "@/api/projectConfig/warningConfig";
-
-export default {
-  components: {MyTableV2, edit},
-  data() {
-    return {
-      // 鎼滅储鏉′欢
-      items: items,
-      filterFrom: {
-        projectName: '',
-        projectCode: '',
-        planTypeCode: '',
-        status: '1',
-      },
-      //鏂板缂栬緫
-      editSetting: {
-        title: '',
-        id: '',
-        show: false,
-      },
-      //鑺傜偣璁剧疆
-      nodeSetting: {
-        title: '鑺傜偣璁剧疆',
-        stageId: '',
-        show: false,
-      },
-      // 琛ㄦ牸鏁版嵁
-      table: {
-        showIndex: true, // 鏄惁鏄剧ず搴忓彿
-        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
-        url: SettingIplatform.apiBaseURL + '/pc/p/temp/expiration/notify/list', // 璇锋眰鍦板潃
-        // 宸ュ叿鏉�
-        tools: {
-          columnsCtrl: {
-            // 鍒楁帶鍒舵寜閽�
-            show: false,
-          },
-          generalExport: {
-            // 閫氱敤瀵煎嚭鎸夐挳
-            show: false,
-          },
-          // 鑷畾涔夊伐鍏锋潯鎸夐挳
-          custom: [
-            {
-              name: '鏂板',
-              click: () => {
-                this.showAdd(null);
-              },
-            },
-          ],
-        },
-        // 鍒椾俊鎭�
-        columns: [
-          {
-            title: '妯℃澘鍚嶇О', field: 'tempExpirationNotifyName', align: 'left',
-            /*formatter: (row) => {
-              return {
-                value: row.projectName,
-                type: 'primary',
-                click: () => {
-                  // 鐐瑰嚮浜嬩欢
-                  this.updState(row);
-                },
-              }
-            }*/
-          },
-          {title: '缂栧彿', field: 'tempExpirationNotifyCode', align: 'center'},
-          {title: '鎵�灞炴満鏋�', field: 'createOrgName', align: 'left'},
-          {
-            title: '寰俊娑堟伅', field: 'notifyWx', align: 'center',width: 80,
-            formatter: (row) => {
-              return {
-                value: row.notifyWx === 1 ? '寮�' : '鍏�'
-              }
-            }
-          },
-          {
-            title: '鐭俊', field: 'notifyMobMsg', align: 'center',width: 80,
-            formatter: (row) => {
-              return {
-                value: row.notifyMobMsg === 1 ? row.notifyMobMsgWay === 1 ? '鎵嬪姩' : '鑷姩' : '鍏�',
-              }
-            }
-          },
-          {
-            field: 'status',
-            title: '鐘舵��',
-            align: 'center',
-            width: 80,
-            switch: (row) => {
-              return {
-                value: row.status === 1, // 寮�
-                label: row.status === 1 ? '鍚敤' : '绂佺敤', // 寮�鐨勬弿杩�
-                click: () => {
-                  // 鐐瑰嚮浜嬩欢
-                  this.updState(row);
-                },
-              };
-            },
-          },
-        ],
-        // 鎿嶄綔淇℃伅
-        operation: {
-          show: true, // 鏄剧ず鎿嶄綔鍒�
-          width: 180, // 鍒楀
-          attr: [
-            {
-              title: '缂栬緫',
-              events: (row) => {
-                this.showAdd(row.id);
-              },
-            },
-            {
-              title: '鍒犻櫎',
-              events: (row) => {
-                this.handleDelete(row);
-              },
-            },
-          ],
-        },
-        paging: {
-          show: false, // 鏄剧ず鍒嗛〉
-          // 鍒嗛〉淇℃伅
-          page: {
-            small: false,
-            pageNum: 1,
-            pageSize: 10,
-            total: 0,
-          },
-        },
-      },
-    };
-  },
-  mounted() {
-  },
-  methods: {
-    // 鏌ヨtable鍒楄〃
-    search(pageNum) {
-      if (pageNum != undefined) {
-        this.$refs.myTable.search(pageNum);
-      } else {
-        this.$refs.myTable.search();
-      }
-    },
-    /*鎼滅储*/
-    filterForm(params) {
-      this.filterFrom = Object.assign(this.filterFrom, params);
-      this.search();
-    },
-    //娣诲姞銆佺紪杈�
-    showAdd(id) {
-      let title = '娣诲姞';
-      if (id != null) {
-        title = '缂栬緫';
-      }
-      this.editSetting.id = id;
-      this.editSetting.title = title;
-      this.editSetting.show = true;
-    },
-    /*寮�鍚叧闂�*/
-    updState(row) {
-      let text = row.status === 0 ? "鍚敤" : "绂佺敤";
-      this.$modal.confirm('纭瑕�' + text + '"' + row.tempExpirationNotifyName + '"妯℃澘鍚楋紵').then(() => {
-        let status = row.status === 1 ? 0 : 1
-        updStatus({
-          id: row.id,
-          status
-        }).then(res => {
-          if (res) {
-            row.status = row.status === 1 ? 0 : 1
-            this.$modal.msgSuccess(text + "鎴愬姛");
-          }
-        })
-      })
-    },
-    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
-    handleDelete(row) {
-      this.$confirm('鏄惁纭鍒犻櫎"' + row.tempExpirationNotifyName + '"妯$増锛�', {
-        type: 'warning'
-      }).then(() => {
-        del({id: row.id}).then(res => {
-          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-          this.search()
-        })
-      })
-    },
-  },
-};
-</script>
-
-<style scoped></style>
diff --git a/admin-web/src/views/projectConfig/warningConfig/items.js b/admin-web/src/views/projectConfig/warningConfig/items.js
deleted file mode 100644
index c2f2b21..0000000
--- a/admin-web/src/views/projectConfig/warningConfig/items.js
+++ /dev/null
@@ -1,45 +0,0 @@
-
-import SettingIplatform from '@/utils/settingIplatform';
-export default [
-  {
-    type: 'text',
-    dataIndex: 'projectName',
-    label: '妯℃澘鍚嶇О',
-    placeholder: '璇疯緭鍏�',
-    defaultValue: ''
-  },
-  {
-    type: 'text',
-    dataIndex: 'projectCode',
-    label: '妯℃澘缂栧彿',
-    placeholder: '璇疯緭鍏�',
-    defaultValue: ''
-  },
-  {
-    type: 'cascader',
-    dataIndex: 'planTypeCode',
-    label: '鎵�灞炴満鏋�',
-    placeholder: '璇烽�夋嫨',
-    options: [],
-    optionsConfig: {
-      url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/tree_fin_tenant'
-    }
-  },
-  {
-    type: 'select',
-    dataIndex: 'status',
-    label: '鐘舵��',
-    placeholder: '璇烽�夋嫨',
-    defaultValue: '1',
-    options: [
-      {
-        label: '鍚敤',
-        value: '1'
-      },
-      {
-        label: '绂佺敤',
-        value: '0'
-      }
-    ]
-  }
-]
diff --git a/admin-web/src/views/stock/accessStock/outbound/index.vue b/admin-web/src/views/stock/accessStock/outbound/index.vue
index b6ce027..e574460 100644
--- a/admin-web/src/views/stock/accessStock/outbound/index.vue
+++ b/admin-web/src/views/stock/accessStock/outbound/index.vue
@@ -12,50 +12,53 @@
             <div class="table-tool-bar" style="margin-bottom: 15px;">
               <my-button name="鏂板" @click="handleAdd" site="tools" size="medium" />
             </div>
-            <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading">
-              <el-row v-if="list.length" class="card" :gutter="5">
-                <el-col v-for="(item, index) in list" :key="index" class="cm-item">
-                  <el-card class="card-data">
-                    <div class="card-container">
-                      <div class="card-header">
-                        <div class="card-header-left">
-                          <span>鍑哄簱鍗曞彿锛�</span>
-                          <span class="value">{{ item.businessFormCode }}</span>
-                        </div>
-                        <div class="card-header-right">
+            <div>
+              <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }" v-loading="loading">
+                <el-row v-if="list.length" class="card" :gutter="5">
+                  <el-col v-for="(item, index) in list" :key="index" class="cm-item">
+                    <el-card class="card-data">
+                      <div class="card-container">
+                        <div class="card-header">
+                          <div class="card-header-left">
+                            <span>鍑哄簱鍗曞彿锛�</span>
+                            <span class="value">{{ item.businessFormCode }}</span>
+                          </div>
+                          <div class="card-header-right">
                             <el-button site="form" type="success" size="mini" @click="handleExport(item)"
-                              >瀵煎嚭鍑哄簱鍗�</el-button
+                            >瀵煎嚭鍑哄簱鍗�</el-button
                             >
-                          <el-button name="鏌ョ湅璇︽儏" site="form" type="info" size="mini" @click="handleDetail(item)"
+                            <el-button name="鏌ョ湅璇︽儏" site="form" type="info" size="mini" @click="handleDetail(item)"
                             >鏌ョ湅璇︽儏</el-button
-                          >
+                            >
+                          </div>
                         </div>
-                      </div>
-                      <div class="one-hed">
-                        <div class="box"><span class="span-two">鏈烘瀯锛�</span>{{ item.agencyName }}</div>
-                        <div class="box"><span class="span-two">鎿嶄綔浜猴細</span>{{ item.operatorName }}</div>
-                        <div class="box">
-                          <span class="span-two">鍑哄簱鏃堕棿锛�</span>{{ item.dealTime | formatTime }}
+                        <div class="one-hed">
+                          <div class="box"><span class="span-two">鏈烘瀯锛�</span>{{ item.agencyName }}</div>
+                          <div class="box"><span class="span-two">鎿嶄綔浜猴細</span>{{ item.operatorName }}</div>
+                          <div class="box">
+                            <span class="span-two">鍑哄簱鏃堕棿锛�</span>{{ item.dealTime | formatTime }}
+                          </div>
                         </div>
-                      </div>
-                      <div class="card-end">
-                        <div v-for="(just, index) in item.formOutputTemplateInfoList" :key="index" class="item">
-                          <div class="name">{{ just.goodsName }}</div>
-                          <div class="value-box">
-                            <div class="value-box-item">
-                              <span class="label">鏁伴噺锛�</span>
-                              <span class="value">{{ just.count }}</span>
-                              <span class="unit">{{ just.unit }}</span>
+                        <div class="card-end">
+                          <div v-for="(just, index) in item.formOutputTemplateInfoList" :key="index" class="item">
+                            <div class="name">{{ just.goodsName }}</div>
+                            <div class="value-box">
+                              <div class="value-box-item">
+                                <span class="label">鏁伴噺锛�</span>
+                                <span class="value">{{ just.count }}</span>
+                                <span class="unit">{{ just.unit }}</span>
+                              </div>
                             </div>
                           </div>
                         </div>
                       </div>
-                    </div>
-                  </el-card>
-                </el-col>
-              </el-row>
-              <div class="no-data" v-else>鏆傛棤鏁版嵁</div>
+                    </el-card>
+                  </el-col>
+                </el-row>
+                <div class="no-data" v-else>鏆傛棤鏁版嵁</div>
+              </div>
             </div>
+
             <el-pagination
               :small="false"
               :current-page="pageNum"
diff --git a/admin-web/src/views/stock/accessStock/outboundDetails/index.vue b/admin-web/src/views/stock/accessStock/outboundDetails/index.vue
index e0d322f..002dd06 100644
--- a/admin-web/src/views/stock/accessStock/outboundDetails/index.vue
+++ b/admin-web/src/views/stock/accessStock/outboundDetails/index.vue
@@ -10,11 +10,13 @@
           <el-row style="margin-top: 15px">
             <el-col>
               <!--鍒楄〃-->
-              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table" />
+              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
             </el-col>
           </el-row>
           <!--娣诲姞/缂栬緫寮圭獥-->
-          <detail v-if="detailSetting.show" :setting="detailSetting" @close="detailSetting.show = false" />
+          <!--          <detail/>-->
+          <component v-if="detailSetting.show" :setting="detailSetting" @close="detailSetting.show = false"
+                     :is="activeDetail"></component>
         </el-card>
       </el-container>
     </el-container>
@@ -25,23 +27,41 @@
 import MyTableV2 from '@/components/myTable/myTableV2';
 import MyButton from '@/components/myButton/myButton';
 import SettingIplatform from '@/utils/settingIplatform';
-import detail from '../outbound/detail';
-import * as finsystenant from '@/api/baseSetting/finsystenant';
 import myImport from '@/views/components/myImport';
-import { goodsTemplate, goodsModel } from '@/api/baseSetting/finsystenant';
-import { outputDtailList } from '@/api/stock/accessStock';
 import * as DateFormatter from '@/utils/DateFormatter';
+import stockType from '@/utils/stockType';
+import detail from '../outbound/detail';
+import purchaseDetail from '@/views/stock/procure/purchaseOrder/detail.vue';// 閲囪喘鍗曡鎯�
+import transferDetail from '@/views/stock/transfer/transferissue/detail.vue';// 璋冩嫧鍗曡鎯�
+import inventoryDetail from '@/views/stock/inventorycount/inventorytask/detail.vue';// 鐩樼偣鍗曡鎯�
+import scrapDetail from '@/views/stock/scrap/itemScrapping/detail.vue';// 鎶ュ簾鍗曡鎯�
+import distributionDetail from '@/views/departmentitem/itemdis/distribution/detail.vue';// 鍒嗗彂鍗曡鎯�
+import itemscrDetail from '@/views/departmentitem/itemscr/scrapping/detail.vue';// 閮ㄩ棬鎶ュ簾鍗曡鎯�
+import returnNoteDetail from '@/views/departmentitem/itemret/returnNote/detail.vue';// 閮ㄩ棬閫�杩樺崟璇︽儏
 
 export default {
   name: 'index',
-  components: { MyButton, MyTableV2, detail, myImport },
+  components: {
+    MyButton,
+    MyTableV2,
+    detail,
+    myImport,
+    purchaseDetail,
+    transferDetail,
+    inventoryDetail,
+    scrapDetail,
+    distributionDetail,
+    itemscrDetail,
+    returnNoteDetail
+  },
   data() {
     return {
+      activeDetail: '',
       // 鎼滅储妗�
       items: [
         {
           type: 'text',
-          dataIndex: 'businessFormId',
+          dataIndex: 'businessFormCode',
           label: '鍗曞彿',
           placeholder: '璇疯緭鍏�',
           defaultValue: '',
@@ -66,7 +86,7 @@
           placeholder: '璇烽�夋嫨',
           defaultValue: '',
           options: [],
-          cascader: [{ key: 'baseGoodsModelsId', queryKey: 'goodsTemplatesId' }],
+          cascader: [{key: 'baseGoodsModelsId', queryKey: 'goodsTemplatesId'}],
           optionsConfig: {
             label: 'goodsName',
             value: 'id',
@@ -91,26 +111,26 @@
           dataIndex: 'agencyId',
           label: '鏈烘瀯',
           placeholder: '璇烽�夋嫨',
-          optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null },
+          optionsConfig: {url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null},
           defaultValue: '',
           options: [],
         },
         {
           type: 'text',
-          dataIndex: 'createdName',
+          dataIndex: 'createName',
           label: '鍒涘缓浜�',
           placeholder: '璇疯緭鍏�',
           defaultValue: '',
         },
         {
           type: 'date-picker',
-          dataIndex: 'dealTimeStart',
+          dataIndex: 'startTime',
           label: '鏃堕棿',
           defaultValue: '',
         },
         {
           type: 'date-picker',
-          dataIndex: 'dealTimeEnd',
+          dataIndex: 'endTime',
           label: '鑷�',
           defaultValue: '',
         },
@@ -155,28 +175,34 @@
         },
         // 鍒椾俊鎭�
         columns: [
-          { title: '绫诲瀷', field: 'thisType', align: 'left' },
-          { title: '鍗曞彿', field: 'businessFormId', align: 'center' },
-          { title: '鐗╁搧鍚嶇О', field: 'goodsTemplateName', align: 'center' },
-          { title: '瑙勬牸鍨嬪彿', field: 'baseGoodsModelsName', align: 'center' },
-          { title: '鍑哄叆搴撴暟閲�', field: 'thisCount', align: 'left' },
-          { title: '閲戦', field: 'totalPrice', align: 'left' },
-          { title: '鎵�灞炴満鏋�', field: 'agencyName', align: 'left' },
-          { title: '鍒涘缓浜�', field: 'createdName', align: 'left' },
+          {
+            title: '绫诲瀷', field: 'thisType', align: 'left',
+            formatter: (row) => {
+              let result = stockType(row)
+              return {value: result};
+            },
+          },
+          {title: '鍗曞彿', field: 'businessFormCode', align: 'center', width: 130},
+          {title: '鐗╁搧鍚嶇О', field: 'goodsTemplateName', align: 'left', minWidth: 130},
+          {title: '瑙勬牸鍨嬪彿', field: 'baseGoodsModelsName', align: 'left', minWidth: 130},
+          {title: '鍑哄叆搴撴暟閲�', field: 'thisCount', align: 'center', width: 100},
+          {title: '閲戦', field: 'totalPrice', align: 'center', width: 100},
+          {title: '鎵�灞炴満鏋�', field: 'agencyName', align: 'left', minWidth: 130},
+          {title: '鍒涘缓浜�', field: 'operatorName', align: 'left', width: 100},
           {
             title: '鎿嶄綔鏃堕棿',
             field: 'dealTime',
             align: 'center',
             width: 160,
             formatter: (row) => {
-              return { value: DateFormatter.LongToDateTime(row.createTime) };
+              return {value: DateFormatter.LongToDateTime(row.dealTime)};
             },
           },
         ],
         // 鎿嶄綔淇℃伅
         operation: {
           show: true, // 鏄剧ず鎿嶄綔鍒�
-          width: '150', // 鍒楀
+          width: 100, // 鍒楀
           attr: [
             {
               title: '璇︽儏',
@@ -197,12 +223,24 @@
           },
         },
       },
+      components: {
+        '1': 'purchaseDetail',
+        '2': 'returnNoteDetail',
+        '3': 'transferDetail',
+        '4': 'inventoryDetail',
+        '5': 'itemscrDetail',
+        '6': 'transferDetail',
+        '7': 'inventoryDetail',
+        '8': 'scrapDetail',
+        '9': 'detail',
+      }
     };
   },
   created() {
   },
   methods: {
     showDetail(row) {
+      this.activeDetail = this.components[row.mixType]
       this.detailSetting.id = row.id;
       this.detailSetting.info = JSON.stringify(row);
       this.detailSetting.title = '璇︽儏';
@@ -211,7 +249,7 @@
     // 鏌ヨtable鍒楄〃
     search(pageNum) {
       if (pageNum != undefined) {
-        this.$refs.myTable.search(pageNum);
+        this.$refs.myTable.search({pageNum});
       } else {
         this.$refs.myTable.search();
       }
diff --git a/admin-web/src/views/stock/procure/purchaseOrder/edit.vue b/admin-web/src/views/stock/procure/purchaseOrder/edit.vue
index 6b4a2a1..e5afac4 100644
--- a/admin-web/src/views/stock/procure/purchaseOrder/edit.vue
+++ b/admin-web/src/views/stock/procure/purchaseOrder/edit.vue
@@ -229,7 +229,6 @@
     };
     // 閲戦鏍¢獙
     var checkPrice = (rule, value, callback) => {
-      console.log(value);
       if (!value) {
         return callback(new Error('璇疯緭鍏�'));
       }
@@ -241,7 +240,6 @@
     };
     // 鏁伴噺鏍¢獙
     var checkCounts = (rule, value, callback) => {
-      console.log(value);
       if (!value) {
         return callback(new Error('璇疯緭鍏�'));
       }
@@ -314,7 +312,6 @@
         title: '涓婁紶',
         max: 20, // 鏈�澶уぇ灏忥紝鍗曚綅M
         num: 10, // 鏀寔涓婁紶鍥剧墖涓暟
-        accept: '.jpg,.png', // 闄愬埗鏍煎紡
         tip: '', // 鎻愮ず 榛樿锛歚鍙兘涓婁紶${this.defaultSettings.num}涓�${this.defaultSettings.accept}鏂囦欢锛屼笖涓嶈秴杩�${this.defaultSettings.max}kb`
         uploadUrl: getUploadUrl(), // 涓婁紶璺緞
         multiple: true, // 鏄惁鏀寔鎵归噺涓婁紶
@@ -504,7 +501,6 @@
       this.$refs['ruleForm'].validate((valid) => {
         if (valid) {
           this.loading = true;
-          console.log('formData', this.formData);
           if (!this.setting.id) {
             procureAdd(this.formData)
               .then((res) => {
@@ -513,7 +509,6 @@
                 this.$emit('search');
               })
               .catch((err) => {
-                console.log('create err', err);
                 this.loading = false;
                 this.$message.error('淇濆瓨澶辫触');
               });
@@ -525,7 +520,6 @@
                 this.$emit('search');
               })
               .catch((err) => {
-                console.log('edit err', err);
                 this.loading = false;
                 this.$message.error('淇濆瓨澶辫触');
               });
diff --git a/admin-web/src/views/stock/procure/purchaseOrder/index.vue b/admin-web/src/views/stock/procure/purchaseOrder/index.vue
index e3e3865..110ee7a 100644
--- a/admin-web/src/views/stock/procure/purchaseOrder/index.vue
+++ b/admin-web/src/views/stock/procure/purchaseOrder/index.vue
@@ -14,7 +14,7 @@
               <my-button name="瀵煎叆" @click="importSetting.dialogShow = true" site="tools" size="medium" />
             </div>
             <div v-loading="loading" style="margin-bottom: 15px">
-              <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 360}px` }">
+              <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }">
                 <el-row v-if="list.length" class="card" :gutter="5">
                   <el-col v-for="(item, index) in list" :key="index" class="cm-item">
                     <el-card class="card-data">
diff --git a/admin-web/src/views/stock/scrap/itemScrapping/index.vue b/admin-web/src/views/stock/scrap/itemScrapping/index.vue
index 9514920..97373c7 100644
--- a/admin-web/src/views/stock/scrap/itemScrapping/index.vue
+++ b/admin-web/src/views/stock/scrap/itemScrapping/index.vue
@@ -12,7 +12,7 @@
             <div class="table-tool-bar" style="margin-bottom: 15px">
               <my-button name="鏂板" @click="handleAdd" site="tools" size="medium" />
             </div>
-            <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }">
+            <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }">
               <el-row class="card" :gutter="5" v-loading="loading">
                 <el-col v-for="(item, index) in list" :key="index" class="cm-item">
                   <el-card class="card-data">
diff --git a/admin-web/src/views/stock/transfer/transferApplication/index.vue b/admin-web/src/views/stock/transfer/transferApplication/index.vue
index b514269..8e1a11a 100644
--- a/admin-web/src/views/stock/transfer/transferApplication/index.vue
+++ b/admin-web/src/views/stock/transfer/transferApplication/index.vue
@@ -12,7 +12,7 @@
             <div class="table-tool-bar" style="margin-bottom: 15px">
               <my-button name="璋冩嫧鐢宠" icon="el-icon-plus" @click="handleAdd" site="tools" size="medium" />
             </div>
-            <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading">
+            <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }" v-loading="loading">
               <el-row v-if="list.length" class="card" :gutter="5">
                 <el-col v-for="(item, index) in list" :key="index" class="cm-item">
                   <el-card class="card-data">
diff --git a/admin-web/src/views/stock/transfer/transferissue/index.vue b/admin-web/src/views/stock/transfer/transferissue/index.vue
index c151048..f1a4aea 100644
--- a/admin-web/src/views/stock/transfer/transferissue/index.vue
+++ b/admin-web/src/views/stock/transfer/transferissue/index.vue
@@ -9,7 +9,7 @@
         <el-row style="margin-top: 15px">
           <el-col>
             <!--鍒楄〃-->
-            <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading">
+            <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }" v-loading="loading">
               <el-row v-if="list.length" class="card" :gutter="5">
                 <el-col v-for="(item, index) in list" :key="index" class="cm-item">
                   <el-card class="card-data">

--
Gitblit v1.9.1