From 6c74bf912e251347714099a84585f825b32a1c08 Mon Sep 17 00:00:00 2001
From: zmc <zmc_li@foxmail.com>
Date: 星期一, 18 十二月 2023 17:52:05 +0800
Subject: [PATCH] Merge branch 'feature-001' of ssh://114.215.109.124:29418/supervision-vue into feature-001

---
 package-lock.json                                          |   24 
 src/components/search-option/FYOptionTime.vue              |    3 
 src/stores/loadingStore.js                                 |   21 
 src/components.d.ts                                        |    5 
 src/constants/index.js                                     |    3 
 src/api/fytz/noticeApi.js                                  |   32 -
 src/composables/formConfirm.js                             |   38 +
 src/views/fytz/user/UserInfo.vue                           |   73 ++--
 src/constants/menu.js                                      |    4 
 src/api/fysp/evaluateApi.js                                |   11 
 src/components/search-option/FYOptionLocation.vue          |   36 +-
 src/components/search-option/FYOptionOnlineStatus.vue      |    1 
 src/api/index.js                                           |   23 
 src/api/fysp/sceneApi.js                                   |   34 -
 src/views/baseinfo/fysp/scene/SceneInfo.vue                |    2 
 src/api/fysp/taskApi.js                                    |   30 -
 src/components/core/SiderMenu.vue                          |    2 
 src/views/fysp/evaluation/components/CompHistoryRecord.vue |   10 
 src/components/search-option/FYOptionScene.vue             |    4 
 src/api/fytz/userApi.js                                    |   25 
 src/views/fysp/evaluation/ResultManage.vue                 |  175 +++++++++
 src/constants/envCreditCode.js                             |   26 +
 src/api/fysp/problemApi.js                                 |    2 
 src/api/fysp/userApi.js                                    |   12 
 src/components/form/FYForm.vue                             |   37 +
 src/views/fysp/evaluation/DataSource.vue                   |   22 +
 src/components/table/FYTable.vue                           |   56 +-
 src/components/search-option/FYOptionUserType.vue          |    4 
 src/composables/messageBox.js                              |    2 
 package.json                                               |    2 
 src/views/fysp/evaluation/components/CompPreCheck.vue      |  171 +++------
 src/views/fysp/evaluation/components/CompQuickSet.vue      |   94 +++++
 .prettierrc.json                                           |    2 
 src/views/fytz/user/components/CompUserInfoAddDrawer.vue   |    7 
 src/views/baseinfo/fysp/scene/CompSceneBaseInfo.vue        |   16 
 35 files changed, 645 insertions(+), 364 deletions(-)

diff --git a/.prettierrc.json b/.prettierrc.json
index 66e2335..5eb97e4 100644
--- a/.prettierrc.json
+++ b/.prettierrc.json
@@ -1,6 +1,6 @@
 {
   "$schema": "https://json.schemastore.org/prettierrc",
-  "semi": false,
+  "semi": true,
   "tabWidth": 2,
   "singleQuote": true,
   "printWidth": 100,
diff --git a/package-lock.json b/package-lock.json
index 19baa43..9407446 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,7 +13,7 @@
         "@vueuse/core": "^9.7.0",
         "axios": "^1.2.1",
         "dayjs": "^1.11.10",
-        "element-plus": "^2.2.26",
+        "element-plus": "^2.4.3",
         "pinia": "^2.0.26",
         "vue": "^3.2.45",
         "vue-router": "^4.1.6"
@@ -1838,8 +1838,9 @@
       }
     },
     "node_modules/@element-plus/icons-vue": {
-      "version": "2.0.10",
-      "license": "MIT",
+      "version": "2.3.1",
+      "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz",
+      "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==",
       "peerDependencies": {
         "vue": "^3.2.0"
       }
@@ -3729,11 +3730,12 @@
       "license": "ISC"
     },
     "node_modules/element-plus": {
-      "version": "2.2.26",
-      "license": "MIT",
+      "version": "2.4.3",
+      "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.4.3.tgz",
+      "integrity": "sha512-b3q26j+lM4SBqiyzw8HybybGnP2pk4MWgrnzzzYW5qKQUgV6EG1Zg7nMCfgCVccI8tNvZoTiUHb2mFaiB9qT8w==",
       "dependencies": {
         "@ctrl/tinycolor": "^3.4.1",
-        "@element-plus/icons-vue": "^2.0.6",
+        "@element-plus/icons-vue": "^2.3.1",
         "@floating-ui/dom": "^1.0.1",
         "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
         "@types/lodash": "^4.14.182",
@@ -8693,7 +8695,9 @@
       }
     },
     "@element-plus/icons-vue": {
-      "version": "2.0.10",
+      "version": "2.3.1",
+      "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz",
+      "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==",
       "requires": {}
     },
     "@eslint-community/eslint-utils": {
@@ -9942,10 +9946,12 @@
       "dev": true
     },
     "element-plus": {
-      "version": "2.2.26",
+      "version": "2.4.3",
+      "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.4.3.tgz",
+      "integrity": "sha512-b3q26j+lM4SBqiyzw8HybybGnP2pk4MWgrnzzzYW5qKQUgV6EG1Zg7nMCfgCVccI8tNvZoTiUHb2mFaiB9qT8w==",
       "requires": {
         "@ctrl/tinycolor": "^3.4.1",
-        "@element-plus/icons-vue": "^2.0.6",
+        "@element-plus/icons-vue": "^2.3.1",
         "@floating-ui/dom": "^1.0.1",
         "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
         "@types/lodash": "^4.14.182",
diff --git a/package.json b/package.json
index 647b599..50001b6 100644
--- a/package.json
+++ b/package.json
@@ -18,7 +18,7 @@
     "@vueuse/core": "^9.7.0",
     "axios": "^1.2.1",
     "dayjs": "^1.11.10",
-    "element-plus": "^2.2.26",
+    "element-plus": "^2.4.3",
     "pinia": "^2.0.26",
     "vue": "^3.2.45",
     "vue-router": "^4.1.6"
diff --git a/src/api/fysp/evaluateApi.js b/src/api/fysp/evaluateApi.js
new file mode 100644
index 0000000..7e61e1f
--- /dev/null
+++ b/src/api/fysp/evaluateApi.js
@@ -0,0 +1,11 @@
+import { $fysp } from '../index';
+
+export default {
+
+  /**
+   * 鑾峰彇鑷姩璇勪及鍘嗗彶璁板綍
+   */
+  fetchAutoEvaluation(param){
+    return $fysp.post(`evaluation/auto/record`, param);
+  }
+};
diff --git a/src/api/fysp/problemApi.js b/src/api/fysp/problemApi.js
index 5bb2b72..ce2ba9b 100644
--- a/src/api/fysp/problemApi.js
+++ b/src/api/fysp/problemApi.js
@@ -10,6 +10,6 @@
    */
   checkProblem({ pId, action, remark = '', userId = id, userName = name }) {
     const params = `?pId=${pId}&action=${action}&remark=${remark}&userId=${userId}&userName=${userName}`;
-    return $fysp.post(`problemlist/check${params}`).then((res) => res.data);
+    return $fysp.post(`problemlist/check${params}`);
   },
 };
diff --git a/src/api/fysp/sceneApi.js b/src/api/fysp/sceneApi.js
index d17004d..be95402 100644
--- a/src/api/fysp/sceneApi.js
+++ b/src/api/fysp/sceneApi.js
@@ -7,7 +7,7 @@
    */
   searchScene(area, page = 1, perPage = 20) {
     const params = `page=${page}&per_page=${perPage}`;
-    return $fysp.post(`scense/find?${params}`, area).then((res) => res.data);
+    return $fysp.post(`scense/find?${params}`, area);
   },
 
   /**
@@ -16,13 +16,11 @@
    * @returns 鍦烘櫙璇︽儏
    */
   getSceneDetail(sId) {
-    return $fysp
-      .get(`scense/detail`, {
-        params: {
-          sceneId: sId,
-        },
-      })
-      .then((res) => res.data);
+    return $fysp.get(`scense/detail`, {
+      params: {
+        sceneId: sId
+      }
+    });
   },
 
   /**
@@ -33,29 +31,23 @@
     const rb = {
       scense: scene ? scene : null,
       subScene: subScene ? JSON.stringify(subScene) : null,
-      sceneDevice: sceneDevice ? sceneDevice : null,
+      sceneDevice: sceneDevice ? sceneDevice : null
     };
-    return $fysp
-      .post(`scense/detail/update?${params}`, rb)
-      .then((res) => res.data);
+    return $fysp.post(`scense/detail/update?${params}`, rb);
   },
 
   /**
    * 鏇存柊鍦烘櫙棰濆淇℃伅
    */
   updateSubScene(typeId, subScene) {
-    return this.updateSceneDetail(typeId, { subScene: subScene }).then(
-      (res) => res.data
-    );
+    return this.updateSceneDetail(typeId, { subScene: subScene });
   },
 
   /**
    * 鏇存柊鍦烘櫙璁惧淇℃伅
    */
   updateSceneDevice(typeId, sceneDevice) {
-    return this.updateSceneDetail(typeId, { sceneDevice: sceneDevice }).then(
-      (res) => res.data
-    );
+    return this.updateSceneDetail(typeId, { sceneDevice: sceneDevice });
   },
 
   /**
@@ -63,7 +55,7 @@
    * @param {Object} scene
    */
   createScene(scene) {
-    return $fysp.put('scense', scene).then((res) => res.data);
+    return $fysp.put('scense', scene);
   },
 
   /**
@@ -71,6 +63,6 @@
    * @param {Object} scene
    */
   updateScene(scene) {
-    return $fysp.post('scense', scene).then((res) => res.data);
-  },
+    return $fysp.post('scense', scene);
+  }
 };
diff --git a/src/api/fysp/taskApi.js b/src/api/fysp/taskApi.js
index 787e520..1d6a3d8 100644
--- a/src/api/fysp/taskApi.js
+++ b/src/api/fysp/taskApi.js
@@ -5,33 +5,29 @@
    * 鑾峰彇椤跺眰浠诲姟
    */
   getTopTask() {
-    return $fysp.get('task/alltask/0').then((res) => res.data);
+    return $fysp.get('task/alltask/0');
   },
 
   /**
    * 鑾峰彇瀛愪换鍔$粺璁′俊鎭�
    */
   getSubtaskSummary({ topTaskId = undefined, sceneTypeId = undefined }) {
-    return $fysp
-      .get('subtask/summary', {
-        params: {
-          topTaskId: topTaskId,
-          sceneTypeId: sceneTypeId,
-        },
-      })
-      .then((res) => res.data);
+    return $fysp.get('subtask/summary', {
+      params: {
+        topTaskId: topTaskId,
+        sceneTypeId: sceneTypeId
+      }
+    });
   },
 
   /**
    * 鑾峰彇瀛愪换鍔¢棶棰樿鎯�
    */
   getProBySubtask(id) {
-    return $fysp
-      .get('problemlist/subtask', {
-        params: {
-          stGuid: id,
-        },
-      })
-      .then((res) => res.data);
-  },
+    return $fysp.get('problemlist/subtask', {
+      params: {
+        stGuid: id
+      }
+    });
+  }
 };
diff --git a/src/api/fysp/userApi.js b/src/api/fysp/userApi.js
index 838d799..758b4c2 100644
--- a/src/api/fysp/userApi.js
+++ b/src/api/fysp/userApi.js
@@ -5,29 +5,27 @@
    * 鑾峰彇鐢ㄦ埛璇︽儏
    */
   getUserById(id) {
-    return $fysp.get(`userinfo/${id}`).then((res) => res.data);
+    return $fysp.get(`userinfo/${id}`);
   },
 
   /**
    * 鏇存柊鐢ㄦ埛璇︽儏
    */
   updateUser(user) {
-    return $fysp.post(`userinfo`, user).then((res) => res.data);
+    return $fysp.post(`userinfo`, user);
   },
 
   /**
    * 鑾峰彇鍦烘櫙鐨勭敤鎴疯鎯�
    */
   getUserByScene(sId) {
-    return $fysp
-      .get(`userinfo/scene/get?sceneId=${sId}`)
-      .then((res) => res.data);
+    return $fysp.get(`userinfo/scene/get?sceneId=${sId}`);
   },
 
   /**
    * 鑷姩鍒涘缓璐︽埛
    */
   autoCreateAccount(sId) {
-    return $fysp.post(`userinfo/create?sceneId=${sId}`).then((res) => res.data);
-  },
+    return $fysp.post(`userinfo/create?sceneId=${sId}`);
+  }
 };
diff --git a/src/api/fytz/noticeApi.js b/src/api/fytz/noticeApi.js
index 175bd98..1a341d7 100644
--- a/src/api/fytz/noticeApi.js
+++ b/src/api/fytz/noticeApi.js
@@ -9,27 +9,23 @@
    */
   getNoticeHistory({ type, subtype = null, page = 1, perPage = 20 }) {
     const params = `userId=${id}&page=${page}&per_page=${perPage}`;
-    return $fytz
-      .post(`notifications/history?${params}`, {
-        ecNoticetype: type,
-        ecNoticesubtype: subtype,
-      })
-      .then((res) => res.data);
+    return $fytz.post(`notifications/history?${params}`, {
+      ecNoticetype: type,
+      ecNoticesubtype: subtype
+    });
   },
 
   /**
    * 鑾峰彇鐢ㄦ埛鏈閫氱煡
    */
   getNotification() {
-    return $fytz
-      .get('notifications', {
-        params: {
-          userId: id,
-          page: 1,
-          per_page: 30,
-        },
-      })
-      .then((res) => res.data);
+    return $fytz.get('notifications', {
+      params: {
+        userId: id,
+        page: 1,
+        per_page: 30
+      }
+    });
   },
 
   /**
@@ -66,8 +62,6 @@
   releaseNotice(notice) {
     notice.authorId = id;
     notice.authorName = name;
-    return $fytz
-      .post(`notifications/${id}/release2`, notice)
-      .then((res) => res.data);
-  },
+    return $fytz.post(`notifications/${id}/release2`, notice);
+  }
 };
diff --git a/src/api/fytz/userApi.js b/src/api/fytz/userApi.js
index bc326d3..8a252c0 100644
--- a/src/api/fytz/userApi.js
+++ b/src/api/fytz/userApi.js
@@ -11,7 +11,7 @@
    */
   fetchUser(page = 1, per_page = 20, data) {
     const params = `page=${page}&per_page=${per_page}`;
-    return $fytz.post(`baseInfo/search/?${params}`, data).then((res) => res.data);
+    return $fytz.post(`baseInfo/search/?${params}`, data);
   },
 
   /**
@@ -20,26 +20,31 @@
    * @returns
    */
   fetchUserBaseInfo(userId) {
-    return $fytz
-      .get(`userInfo/baseInfo?userId=${userId}`)
-      .then((res) => res.data);
+    return $fytz.get(`userInfo/baseInfo?userId=${userId}`);
   },
 
   /**
    * 鏇存柊鐢ㄦ埛璐︽埛淇℃伅
-   * @param {*} data 
-   * @returns 
+   * @param {*} data
+   * @returns
    */
   updateUserInfo(data) {
-    return $fytz.post('userInfo', data).then((res) => res.data);
+    return $fytz.post('userInfo', data);
   },
 
   /**
    * 鏂板鐢ㄦ埛
-   * @param {*} data 
-   * @returns 
+   * @param {*} data
+   * @returns
    */
   createUser(data) {
-    return $fytz.put('userInfo', data).then((res) => res.data);
+    return $fytz.put('userInfo/create', data);
+  },
+
+  /**
+   * 閲嶇疆鐢ㄦ埛瀵嗙爜
+   */
+  resetPassword(id) {
+    return $fytz.post(`userInfo/resetPw?userId=${id}`);
   }
 };
diff --git a/src/api/index.js b/src/api/index.js
index f21aba3..cbff2ca 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -9,7 +9,7 @@
 let ip2_file = 'https://fyami.com.cn/';
 
 if (debug) {
-  // ip1 = 'http://192.168.0.123:8082/';
+  ip1 = 'http://192.168.0.138:8082/';
   // ip1_file = 'http://47.100.191.150:9005/';
   ip2 = 'http://192.168.0.138:8080/';
   // ip2_file = 'https://fyami.com.cn/';
@@ -20,7 +20,7 @@
 //椋炵窘鐩戠
 const $fysp = axios.create({
   baseURL: ip1,
-  timeout: 10000,
+  timeout: 10000
 });
 $fysp.imgUrl = `${ip1_file}images/`;
 $fysp.downloadUrl = `${ip1_file}files/`;
@@ -28,7 +28,7 @@
 //椋炵窘鐜
 const $fytz = axios.create({
   baseURL: ip2,
-  timeout: 10000,
+  timeout: 10000
 });
 $fytz.imgUrl = `${ip2_file}images/`;
 
@@ -51,7 +51,7 @@
       console.log(error);
       ElMessage({
         message: error,
-        type: 'error',
+        type: 'error'
       });
       return Promise.reject(error);
     }
@@ -65,17 +65,18 @@
       console.log(response);
       console.log('==>璇锋眰缁撴潫');
       if (response.status == 200) {
-        if (
-          response.data.success != undefined &&
-          response.data.success != null
-        ) {
+        if (response.data.success != undefined && response.data.success != null) {
           if (response.data.success == true) {
-            return response;
+            return response.data;
           } else {
+            ElMessage({
+              message: response.data.message,
+              type: 'error'
+            });
             return Promise.reject(response.data.message);
           }
         } else {
-          return response;
+          return response.data;
         }
       } else {
         return Promise.reject(response);
@@ -88,7 +89,7 @@
       console.log('==>璇锋眰缁撴潫');
       ElMessage({
         message: error,
-        type: 'error',
+        type: 'error'
       });
       return Promise.reject(error);
     }
diff --git a/src/components.d.ts b/src/components.d.ts
index b1cd8a8..bdad972 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -10,7 +10,6 @@
     BaseContentLayout: typeof import('./components/core/BaseContentLayout.vue')['default']
     BasePanelLayout: typeof import('./components/core/BasePanelLayout.vue')['default']
     Content: typeof import('./components/core/Content.vue')['default']
-    copy: typeof import('./components/search-option/FYOptionScene copy.vue')['default']
     ElAside: typeof import('element-plus/es')['ElAside']
     ElAvatar: typeof import('element-plus/es')['ElAvatar']
     ElBacktop: typeof import('element-plus/es')['ElBacktop']
@@ -22,7 +21,6 @@
     ElCol: typeof import('element-plus/es')['ElCol']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
     ElContainer: typeof import('element-plus/es')['ElContainer']
-    ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
     ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
     ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
     ElDivider: typeof import('element-plus/es')['ElDivider']
@@ -34,7 +32,6 @@
     ElIcon: typeof import('element-plus/es')['ElIcon']
     ElImage: typeof import('element-plus/es')['ElImage']
     ElInput: typeof import('element-plus/es')['ElInput']
-    ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
     ElMain: typeof import('element-plus/es')['ElMain']
     ElMenu: typeof import('element-plus/es')['ElMenu']
     ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
@@ -57,7 +54,6 @@
     ElTabs: typeof import('element-plus/es')['ElTabs']
     ElTag: typeof import('element-plus/es')['ElTag']
     ElTooltip: typeof import('element-plus/es')['ElTooltip']
-    ElTransfer: typeof import('element-plus/es')['ElTransfer']
     ElTree: typeof import('element-plus/es')['ElTree']
     Footer: typeof import('./components/core/Footer.vue')['default']
     FormCol: typeof import('./components/layout/FormCol.vue')['default']
@@ -72,7 +68,6 @@
     FYTable: typeof import('./components/table/FYTable.vue')['default']
     Header: typeof import('./components/core/Header.vue')['default']
     MenuItems: typeof import('./components/core/MenuItems.vue')['default']
-    ProblemCard: typeof import('./components/ProblemCard.vue')['default']
     RouterLink: typeof import('vue-router')['RouterLink']
     RouterView: typeof import('vue-router')['RouterView']
     SearchBar: typeof import('./components/SearchBar.vue')['default']
diff --git a/src/components/core/SiderMenu.vue b/src/components/core/SiderMenu.vue
index 1cbb4b5..d4541a2 100644
--- a/src/components/core/SiderMenu.vue
+++ b/src/components/core/SiderMenu.vue
@@ -60,7 +60,7 @@
 </template>
 
 <script>
-import { MENU_FYSP, MENU_FYTZ, MENU_FYPW } from '../../constants/index'
+import { MENU_FYSP, MENU_FYTZ, MENU_FYPW } from '@/constants/index'
 
 export default {
   name: 'CoreSiderMenu',
diff --git a/src/components/form/FYForm.vue b/src/components/form/FYForm.vue
index 7509183..42cf198 100644
--- a/src/components/form/FYForm.vue
+++ b/src/components/form/FYForm.vue
@@ -1,4 +1,3 @@
-<!-- 鍦烘櫙鍩烘湰淇℃伅缂栬緫 -->
 <template>
   <el-form
     :inline="false"
@@ -9,16 +8,12 @@
     label-width="150px"
   >
     <slot name="form-item" :formObj="formObj"></slot>
-    <el-form-item>
-      <el-button
-        :disabled="!edit"
-        type="primary"
-        @click="onSubmit"
-        :loading="loading"
+    <el-form-item v-if="showButtons">
+      <el-button :disabled="!edit" type="primary" @click="onSubmit" :loading="loading"
         >鎻愪氦</el-button
       >
-      <el-button :disabled="!edit" @click="onReset">閲嶇疆</el-button>
-      <el-button v-if="enableCancelBtn" @click="onCancel">鍙栨秷</el-button>
+      <el-button v-if="useReset" :disabled="!edit" @click="onReset">閲嶇疆</el-button>
+      <el-button v-if="useCancel" @click="onCancel">鍙栨秷</el-button>
     </el-form-item>
   </el-form>
 </template>
@@ -39,25 +34,31 @@
   formInfo: Object,
   //琛ㄥ崟妫�楠岃鍒�
   rules: Object,
+  showButtons: {
+    type: Boolean,
+    default: true
+  },
   //鍙栨秷鎸夐挳鏄惁鍙敤
-  enableCancelBtn: Boolean,
+  useCancel: Boolean,
+  //閲嶇疆鎸夐挳鏄惁鍙敤
+  useReset: Boolean,
   //瑙﹀彂閲嶇疆
   reset: Boolean,
   //閫氱煡缂栬緫鐘舵��
-  isEdit: Boolean,
+  isEdit: Boolean
 });
 
 //瑙﹀彂鍑芥暟锛屾彁浜ゅ拰鍙栨秷
 const emit = defineEmits(['submit', 'cancel', 'update:isEdit']);
 
 //琛ㄥ崟鎿嶄綔鍑芥暟
-const { formObj, formRef, edit, onSubmit, onCancel, onReset } = useFormConfirm({
+const { formObj, formRef, edit, onSubmit, onCancel, onReset, formProps } = useFormConfirm({
   submit: {
-    do: submit,
+    do: submit
   },
   cancel: {
-    do: cancel,
-  },
+    do: cancel
+  }
 });
 
 //鍔犺浇鐘舵��
@@ -70,6 +71,9 @@
     emit('submit', formObj, () => {
       loading.value = false;
       resolve();
+    },(err)=>{
+      loading.value = false;
+      reject(err);
     });
   });
 }
@@ -84,7 +88,8 @@
   () => props.formInfo,
   (nValue) => {
     formObj.value = nValue;
-  }
+  },
+  { deep: false, immediate: false }
 );
 
 //鐩戝惉琛ㄥ崟閲嶇疆鍔熻兘瑙﹀彂
diff --git a/src/components/search-option/FYOptionLocation.vue b/src/components/search-option/FYOptionLocation.vue
index 98db772..ea6c3d4 100644
--- a/src/components/search-option/FYOptionLocation.vue
+++ b/src/components/search-option/FYOptionLocation.vue
@@ -1,5 +1,5 @@
 <template>
-  <el-form-item :label="placeholder">
+  <el-form-item :label="placeholder" :prop="prop">
     <el-cascader
       v-model="selectedOptions"
       :options="locations"
@@ -39,7 +39,8 @@
     checkStrictly: {
       type: Boolean,
       default: true
-    }
+    },
+    prop: String
   },
   emits: ['update:value'],
   data() {
@@ -81,13 +82,12 @@
           return
         }
         if (nVal != oVal) {
-          if (nVal || nVal.length > 0) {
-            this.selectedOptions = this.optionFormatReverse(nVal);
-          }
+          this.selectedOptions = this.optionFormatReverse(nVal)
         }
       },
       deep: true,
-    },
+      immediate: true
+    }
   },
   methods: {
     /**
@@ -124,17 +124,19 @@
     },
     optionFormatReverse(val) {
       const res = []
-      if (val.pCode) {
-        res.push([val.pCode, val.pName])
-      }
-      if (val.cCode) {
-        res.push([val.cCode, val.cName])
-      }
-      if (val.dCode) {
-        res.push([val.dCode, val.dName])
-      }
-      if (val.tCode) {
-        res.push([val.tCode, val.tName])
+      if (val) {
+        if (val.pCode) {
+          res.push([val.pCode, val.pName])
+        }
+        if (val.cCode) {
+          res.push([val.cCode, val.cName])
+        }
+        if (val.dCode) {
+          res.push([val.dCode, val.dName])
+        }
+        if (val.tCode) {
+          res.push([val.tCode, val.tName])
+        } 
       }
       return res
     }
diff --git a/src/components/search-option/FYOptionOnlineStatus.vue b/src/components/search-option/FYOptionOnlineStatus.vue
index dacbd38..3d245b1 100644
--- a/src/components/search-option/FYOptionOnlineStatus.vue
+++ b/src/components/search-option/FYOptionOnlineStatus.vue
@@ -56,6 +56,7 @@
         }
       },
       deep: true,
+      immediate: true
     },
   },
   mounted() {
diff --git a/src/components/search-option/FYOptionScene.vue b/src/components/search-option/FYOptionScene.vue
index 436ccdf..b02aff2 100644
--- a/src/components/search-option/FYOptionScene.vue
+++ b/src/components/search-option/FYOptionScene.vue
@@ -1,5 +1,5 @@
 <template>
-  <el-form-item label="鍦烘櫙绫诲瀷">
+  <el-form-item label="鍦烘櫙绫诲瀷" :prop="prop">
     <el-select
       v-model="selectedOptions"
       placeholder="鍦烘櫙绫诲瀷"
@@ -37,6 +37,7 @@
       type: Boolean,
       default: true,
     },
+    prop: String
   },
   emits: ['update:value'],
   data() {
@@ -61,6 +62,7 @@
         }
       },
       deep: true,
+      immediate: true
     },
   },
   mounted() {
diff --git a/src/components/search-option/FYOptionTime.vue b/src/components/search-option/FYOptionTime.vue
index fdea90c..9a6ba6f 100644
--- a/src/components/search-option/FYOptionTime.vue
+++ b/src/components/search-option/FYOptionTime.vue
@@ -47,7 +47,8 @@
         if (nVal != oVal) {
           this.selectedOptions = nVal
         }
-      }
+      },
+      immediate: true
     }
   },
   methods: {
diff --git a/src/components/search-option/FYOptionUserType.vue b/src/components/search-option/FYOptionUserType.vue
index 164c672..f127187 100644
--- a/src/components/search-option/FYOptionUserType.vue
+++ b/src/components/search-option/FYOptionUserType.vue
@@ -1,5 +1,5 @@
 <template>
-  <el-form-item label="鐢ㄦ埛绫诲瀷">
+  <el-form-item label="鐢ㄦ埛绫诲瀷" :prop="prop">
     <el-select
       v-model="selectedOptions"
       placeholder="鐢ㄦ埛绫诲瀷"
@@ -32,6 +32,7 @@
       type: Boolean,
       default: true,
     },
+    prop: String
   },
   emits: ['update:value'],
   data() {
@@ -56,6 +57,7 @@
         }
       },
       deep: true,
+      immediate: true
     },
   },
   mounted() {
diff --git a/src/components/table/FYTable.vue b/src/components/table/FYTable.vue
index d87d4c8..c519077 100644
--- a/src/components/table/FYTable.vue
+++ b/src/components/table/FYTable.vue
@@ -6,18 +6,22 @@
       </template>
     </FYSearchBar>
   </el-row>
-
+  <el-row ref="expandRef">
+    <slot name="options-expand"></slot>
+  </el-row>
   <el-table
     :data="tableData"
     v-loading="loading"
     table-layout="fixed"
     :row-class-name="tableRowClassName"
     :height="tableHeight"
+    border
   >
     <slot name="table-column"></slot>
   </el-table>
 
   <el-pagination
+    v-if="pagination"
     ref="paginationRef"
     class="el-pagination"
     v-model:current-page="currentPage"
@@ -41,6 +45,10 @@
 export default {
   props: {
     rowClassName: undefined,
+    pagination: {
+      type: Boolean,
+      default: true
+    }
   },
   data() {
     return {
@@ -49,21 +57,21 @@
       total: 0,
       currentPage: 1,
       pageSize: 20,
-      loading: false,
-    };
+      loading: false
+    }
   },
   emits: ['search'],
   watch: {
     currentPage(nValue, oValue) {
       if (nValue != oValue) {
-        this.onSearch();
+        this.onSearch()
       }
     },
     pageSize(nValue, oValue) {
       if (nValue != oValue) {
-        this.onSearch();
+        this.onSearch()
       }
-    },
+    }
   },
   methods: {
     /**
@@ -72,43 +80,45 @@
      * 鍥炶皟鍑芥暟鎺ユ敹涓�涓璞★紝鍖呮嫭琛ㄦ牸鏁版嵁鏁扮粍data鍜屾暟鎹�绘暟total
      */
     onSearch() {
-      this.loading = true;
+      this.loading = true
       this.$emit(
         'search',
         {
           currentPage: this.currentPage,
-          pageSize: this.pageSize,
+          pageSize: this.pageSize
         },
         (res) => {
-          this.tableData = res.data;
-          this.total = res.total;
-          this.loading = false;
+          this.tableData = res.data
+          this.total = res.total ? res.total : 0
+          this.loading = false
         }
-      );
+      )
     },
     calcTableHeight() {
-      const h1 = this.$refs.searchRef.$el.offsetHeight;
-      const h2 = this.$refs.paginationRef.$el.offsetHeight;
+      const h1 = this.$refs.searchRef.$el.offsetHeight
+      const h2 = this.$refs.paginationRef ? this.$refs.paginationRef.$el.offsetHeight : 0
+      const h3 = this.$refs.expandRef.$el.offsetHeight
+      const h = h1 + h2 + h3
       // return `calc(100vh - ${h1}px - ${h2}px - var(--el-main-padding) * 2 - var(--el-header-height))`;
-      return `calc(100vh - ${h1}px - ${h2}px - 60px - var(--el-main-padding) * 2)`;
+      return `calc(100vh - ${h}px - 60px - var(--el-main-padding) * 2)`
     },
     tableRowClassName({ row }) {
       if (this.rowClassName) {
         if (typeof this.rowClassName == 'string') {
-          return this.rowClassName;
+          return this.rowClassName
         } else if (typeof this.rowClassName == 'function') {
-          return this.rowClassName({ row });
+          return this.rowClassName({ row })
         }
       } else {
-        return row.extension1 != '0' ? 'online-row' : 'offline-row';
+        return row.extension1 != '0' ? 'online-row' : 'offline-row'
       }
-    },
+    }
   },
   mounted() {
-    this.tableHeight = this.calcTableHeight();
-    this.onSearch();
-  },
-};
+    this.tableHeight = this.calcTableHeight()
+    this.onSearch()
+  }
+}
 </script>
 
 <style>
diff --git a/src/composables/formConfirm.js b/src/composables/formConfirm.js
index 306b125..d568fe0 100644
--- a/src/composables/formConfirm.js
+++ b/src/composables/formConfirm.js
@@ -1,24 +1,29 @@
-// 琛ㄥ崟鐨勭‘璁ゅ拰鍙栨秷
-import { onActivated, onDeactivated, ref, watch } from 'vue';
+import { defineProps, onActivated, onDeactivated, ref, watch } from 'vue';
 import { useCloned } from '@vueuse/core';
 import { useMessageBoxTip, useMessageBox } from './messageBox';
 
+// 琛ㄥ崟鐨勭‘璁ゅ拰鍙栨秷
 export function useFormConfirm({
   defaultForm = undefined,
   submit = {
-    do: () => {},
+    do: () => {}
   },
   cancel = {
-    do: () => {},
+    do: () => {}
   },
   reset = {
-    do: () => {},
-  },
+    do: () => {}
+  }
 }) {
   if (!submit.title) submit.title = '鎻愪氦';
   if (!submit.msg) submit.msg = '纭鏄惁鎻愪氦锛�';
   if (!cancel.title) cancel.title = '鍙栨秷';
   if (!cancel.msg) cancel.msg = '鏄惁鏀惧純宸茬紪杈戠殑鍐呭锛�';
+
+  const formProps = defineProps({
+    // 鏄惁鍦ㄦ彁浜ゆ垚鍔熷悗娓呯┖琛ㄥ崟
+    clearAftSubmit: Boolean
+  });
 
   //琛ㄥ崟鍐呭
   const formObj = ref(defaultForm ? defaultForm : {});
@@ -67,20 +72,21 @@
     edit.value = false;
     isReset = true;
     formObj.value = useCloned(formObjClone.cloned, {
-      manual: true,
+      manual: true
     }).cloned.value;
     formRef.value.clearValidate();
   };
 
   // 娓呯┖琛ㄥ崟
   const clear = function () {
-    edit.value = false;
     isReset = true;
-    formRef.value.resetFields();
+    // formRef.value.resetFields();
+    edit.value = false;
   };
 
   // 鎻愪氦鎴愬姛鍚�
   const submited = function () {
+    if (formProps.clearAftSubmit) clear();
     edit.value = false;
     formObjClone = useCloned(formObj, { manual: true });
   };
@@ -93,10 +99,10 @@
           confirmMsg: submit.msg,
           confirmTitle: submit.title,
           onConfirm: async () => {
-            await submit.do();
+            const res = await submit.do();
             submited();
-            return;
-          },
+            return res;
+          }
         });
       }
     });
@@ -110,9 +116,9 @@
         confirmMsg: cancel.msg,
         confirmTitle: cancel.title,
         onConfirm: () => {
-          clear();
+          // clear();
           return cancel.do();
-        },
+        }
       });
     } else {
       cancel.do();
@@ -130,7 +136,7 @@
           onConfirm: () => {
             _reset();
             return reset.do();
-          },
+          }
         });
       } else {
         _reset();
@@ -141,5 +147,5 @@
     }
   };
 
-  return { formObj, formRef, edit, onSubmit, onCancel, onReset };
+  return { formProps, formObj, formRef, edit, onSubmit, onCancel, onReset };
 }
diff --git a/src/composables/messageBox.js b/src/composables/messageBox.js
index d896244..8606bd6 100644
--- a/src/composables/messageBox.js
+++ b/src/composables/messageBox.js
@@ -15,7 +15,7 @@
       let msg = `宸�${doneMsg}`
       if (typeof onConfirm === 'function') {
         const str = await onConfirm();
-        if (str && str != '') {
+        if (typeof str === 'string' && str != '') {
           msg = `宸�${doneMsg}, ${str}`
         }
       }
diff --git a/src/constants/envCreditCode.js b/src/constants/envCreditCode.js
new file mode 100644
index 0000000..184d7af
--- /dev/null
+++ b/src/constants/envCreditCode.js
@@ -0,0 +1,26 @@
+// 鐜俊鐮佽浆鎹�
+
+function envCreditCode(score) {
+  const s = parseInt(score)
+  if (s <= 59) {
+    return {
+      value: 2,
+      name: '绾㈢爜',
+      color: '#db2828'
+    };
+  } else if (s <= 89) {
+    return {
+      value: 1,
+      name: '榛勭爜',
+      color: '#f7a62c'
+    };
+  } else {
+    return {
+      value: 0,
+      name: '缁跨爜',
+      color: '#21ba45'
+    };
+  }
+}
+
+export { envCreditCode };
diff --git a/src/constants/index.js b/src/constants/index.js
index 51c825e..293b045 100644
--- a/src/constants/index.js
+++ b/src/constants/index.js
@@ -1 +1,2 @@
-export { MENU_FYSP, MENU_FYTZ, MENU_FYPW } from './menu'
+export { MENU_FYSP, MENU_FYTZ, MENU_FYPW } from './menu';
+export { envCreditCode } from './envCreditCode';
diff --git a/src/constants/menu.js b/src/constants/menu.js
index edc83a5..afb67dd 100644
--- a/src/constants/menu.js
+++ b/src/constants/menu.js
@@ -36,12 +36,12 @@
       {
         path: '/fysp/evaluation/datasource',
         icon: 'MessageBox',
-        name: '璇勪及鏁版嵁婧�',
+        name: '璇勪及浠诲姟',
       },
       {
         path: '/fysp/evaluation/resultManage',
         icon: 'Tickets',
-        name: '璇勪及绠$悊',
+        name: '璇勪及璁板綍',
       },
     ],
   },
diff --git a/src/stores/loadingStore.js b/src/stores/loadingStore.js
index d8b2d1c..d69e666 100644
--- a/src/stores/loadingStore.js
+++ b/src/stores/loadingStore.js
@@ -1,23 +1,26 @@
 // 鍔犺浇鐘舵�佺殑閫昏緫绠$悊
 
-import { defineStore } from 'pinia'
+import { defineStore } from 'pinia';
 
 export const useLoadingStore = defineStore('loading', {
   state: () => {
     return {
       loadingStatus: []
-    }
+    };
   },
   actions: {
+    pushLoading(func) {
+      const timeout = setTimeout(func, 3000);
+      this.loadingStatus.push({ t: timeout, f: func });
+    },
     clearLoading() {
-      this.loadingStatus.forEach(l => {
-        if (typeof l === 'function') {
-          l()
-        }
-      });
       if (this.loadingStatus.length > 0) {
-        this.loadingStatus = []        
+        this.loadingStatus.forEach((obj) => {
+          clearTimeout(obj.t)
+          obj.f()
+        });
+        this.loadingStatus = [];
       }
     }
   }
-})
\ No newline at end of file
+});
diff --git a/src/views/baseinfo/fysp/scene/CompSceneBaseInfo.vue b/src/views/baseinfo/fysp/scene/CompSceneBaseInfo.vue
index 5e4360a..ead76bf 100644
--- a/src/views/baseinfo/fysp/scene/CompSceneBaseInfo.vue
+++ b/src/views/baseinfo/fysp/scene/CompSceneBaseInfo.vue
@@ -1,6 +1,16 @@
 <!-- 鍦烘櫙鍩烘湰淇℃伅缂栬緫 -->
 <template>
+<<<<<<< HEAD
   <FYForm :form-info="_formInfo" :rules="rules" @submit="submit" @cancel="cancel">
+=======
+  <FYForm
+    :form-info="_formInfo"
+    :rules="rules"
+    :useReset="true"
+    @submit="submit"
+    @cancel="cancel"
+  >
+>>>>>>> 356f54467f525f437f41271fb62f6be66f2ab1e5
     <template #form-item="{ formObj }">
       <el-form-item label="鍦烘櫙鍚嶇О" prop="name">
         <el-input clearable show-word-limit v-model="formObj.name" placeholder="鍦烘櫙鍚嶇О" />
@@ -78,9 +88,9 @@
 
 const emit = defineEmits(['onSubmit', 'onCancel'])
 
-const _formInfo = ref()
-const sceneTypes = reactive(enumScene(2, false))
-const locations = reactive(enumLocation(false))
+const _formInfo = ref({});
+const sceneTypes = reactive(enumScene(2, false));
+const locations = reactive(enumLocation(false));
 const cascaderProps = reactive({
   checkStrictly: true
 })
diff --git a/src/views/baseinfo/fysp/scene/SceneInfo.vue b/src/views/baseinfo/fysp/scene/SceneInfo.vue
index 535e602..b3e7682 100644
--- a/src/views/baseinfo/fysp/scene/SceneInfo.vue
+++ b/src/views/baseinfo/fysp/scene/SceneInfo.vue
@@ -107,7 +107,7 @@
     },
     itemEdit(scope) {
       scope.row.loading1 = true;
-      this.loadingStore.loadingStatus.push(() => (scope.row.loading1 = false));
+      this.loadingStore.pushLoading(() => (scope.row.loading1 = false));
       this.$router.push(`sceneEdit/${scope.row.guid}`);
     },
     itemActive(scope) {
diff --git a/src/views/fysp/evaluation/DataSource.vue b/src/views/fysp/evaluation/DataSource.vue
index 9f57df9..61476d4 100644
--- a/src/views/fysp/evaluation/DataSource.vue
+++ b/src/views/fysp/evaluation/DataSource.vue
@@ -1,14 +1,28 @@
 <template>
-  <div>DataSource</div>
+  <el-row :gutter="16">
+    <el-col :span="16">
+      <CompPreCheck></CompPreCheck>
+    </el-col>
+    <el-col :span="8">
+      <div class="radius"></div>
+    </el-col>
+  </el-row>
 </template>
 
 <script>
+import CompPreCheck from "./components/CompPreCheck.vue";
 export default {
   name: 'DataSource',
+  components: { CompPreCheck },
   data() {
-    return {
-      
-    }
+    return {};
   }
 };
 </script>
+<style scoped>
+.radius {
+  height: 80vh;
+  border: 1px solid var(--el-border-color);
+  border-radius: var(--el-border-radius-base);
+}
+</style>
diff --git a/src/views/fysp/evaluation/ResultManage.vue b/src/views/fysp/evaluation/ResultManage.vue
index 864aab2..da2c668 100644
--- a/src/views/fysp/evaluation/ResultManage.vue
+++ b/src/views/fysp/evaluation/ResultManage.vue
@@ -1,24 +1,173 @@
 <template>
-  <CompPreCheck @pre-check="autoEvaluate"></CompPreCheck>
+  <!-- <CompPreCheck @pre-check="autoEvaluate"></CompPreCheck> -->
+
+  <FYTable @search="onSearch" :pagination="false" ref="tableRef">
+    <template #options>
+      <!-- 鍖哄幙 -->
+      <FYOptionLocation
+        :allOption="false"
+        :level="3"
+        :checkStrictly="false"
+        v-model:value="formSearch.locations"
+      ></FYOptionLocation>
+      <!-- 鍦烘櫙绫诲瀷 -->
+      <FYOptionScene
+        :allOption="false"
+        :type="2"
+        v-model:value="formSearch.scenetype"
+      ></FYOptionScene>
+      <!-- 鏃堕棿 -->
+      <FYOptionTime :initValue="false" type="month" v-model:value="formSearch.time"></FYOptionTime>
+    </template>
+
+    <template #options-expand>
+      <CompQuickSet @quick-set="setOptions"></CompQuickSet>
+    </template>
+
+    <template #table-column>
+      <el-table-column type="index" fixed="left" prop="sceneName" label="鍚嶇О" width="300">
+        <template #default="{ row }">
+          <el-tooltip
+            effect="dark"
+            :content="row.sceneName"
+            placement="top-start"
+            :show-after="500"
+          >
+            {{ row.sceneName }}
+          </el-tooltip>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="subTaskTime"
+        label="宸℃煡鏃ユ湡"
+        width="110"
+        sortable
+        :formatter="timeFormat"
+      />
+      <el-table-column
+        prop="evaluation.resultscorebef"
+        label="寰楀垎"
+        width="90"
+        sortable
+        :sort-method="sortScore"
+      />
+      <el-table-column prop="evaluation.resultscorebef" label="鐜俊鐮�" width="100">
+        <template #default="{ row }">
+          <span :style="`color: ${toCode(row).color};`">{{ toCode(row).name }}</span>
+        </template>
+      </el-table-column>
+
+      <el-table-column prop="dname" label="鍖哄幙" width="90" />
+      <el-table-column
+        prop="tname"
+        label="琛楅亾"
+        width="110"
+        :filters="townFilters"
+        :filter-method="filterHandler"
+      />
+      <el-table-column prop="evaluation.scenseaddress" label="鍦板潃" />
+      <!-- <el-table-column prop="biArea" label="闆嗕腑鍖�" width="110" />
+      <el-table-column prop="biManagementCompany" label="鐗╀笟" min-width="110"/> -->
+      <el-table-column fixed="right" align="right" label="鎿嶄綔" width="160">
+        <template #header>
+          <el-button icon="DocumentAdd" size="default" type="success" @click="drawer = true"
+            >鑷姩璇勪及</el-button
+          >
+        </template>
+        <template #default="{ row }">
+          <el-button type="primary" size="small" @click="editRow(row)">鏌ョ湅</el-button>
+        </template>
+      </el-table-column>
+    </template>
+  </FYTable>
 </template>
 
 <script>
-import CompPreCheck from './components/CompPreCheck.vue';
+import dayjs from 'dayjs';
+import evaluateApi from '@/api/fysp/evaluateApi';
+import { envCreditCode } from '@/constants/index';
+import CompQuickSet from './components/CompQuickSet.vue';
 
 export default {
-    name: 'ResultManage',
-    components: { CompPreCheck },
-    data() {
-        return {};
+  name: 'ResultManage',
+  components: { CompQuickSet },
+  data() {
+    return {
+      formSearch: {
+        locations: {},
+        scenetype: {},
+        time: dayjs().add(-1, 'M').date(1).toDate()
+      },
+      townFilters: []
+    };
+  },
+  methods: {
+    setOptions(param) {
+      this.formSearch.locations = param.locations;
+      this.formSearch.scenetype = param.scenetype;
+      this.$refs.tableRef.onSearch()
     },
-    methods:{
-      /**
-       * 閫氳繃鑷瘎棰勬鍚庯紝鎵ц鑷姩璇勪及
-       * @param {*} options 鏌ヨ鍙傛暟
-       */
-      autoEvaluate(options){
-
+    onSearch(page, func) {
+      const { locations, scenetype, time } = this.formSearch;
+      const area = {
+        provincecode: locations.pCode,
+        provincename: locations.pName,
+        citycode: locations.cCode,
+        cityname: locations.cName,
+        districtcode: locations.dCode,
+        districtname: locations.dName,
+        starttime: dayjs(time).format('YYYY-MM-DD'),
+        scensetypeid: scenetype.value
+      };
+      evaluateApi.fetchAutoEvaluation(area).then((res) => {
+        if (typeof func === 'function') {
+          func({ data: res.data });
+        }
+        if (res.data) {
+          this.getFilters(res.data);
+        }
+      });
+    },
+    getFilters(data) {
+      const townList = [];
+      data.forEach((e) => {
+        if (townList.indexOf(e.tname) == -1) {
+          townList.push(e.tname);
+        }
+      });
+      this.townFilters = townList.map((v) => {
+        return { text: v, value: v };
+      });
+    },
+    toCode(row, column) {
+      if (row.evaluation) {
+        return envCreditCode(row.evaluation.resultscorebef);
+      } else {
+        return '';
       }
+    },
+    timeFormat(row, column) {
+      const time = row.subTaskTime;
+      if (time) {
+        return dayjs(time).format('MM-DD');
+      } else {
+        return '';
+      }
+    },
+    filterHandler(value, row, column) {
+      const property = column['property'];
+      return row[property] === value;
+    },
+    sortScore(a, b) {
+      const s1 = a.evaluation ? parseInt(a.evaluation.resultscorebef) : 0;
+      const s2 = b.evaluation ? parseInt(b.evaluation.resultscorebef) : 0;
+      return s1 - s2;
     }
+  }
 };
 </script>
+<style scoped>
+.a {
+  color: #f7a62c;
+}
+</style>
diff --git a/src/views/fysp/evaluation/components/CompHistoryRecord.vue b/src/views/fysp/evaluation/components/CompHistoryRecord.vue
new file mode 100644
index 0000000..95fda22
--- /dev/null
+++ b/src/views/fysp/evaluation/components/CompHistoryRecord.vue
@@ -0,0 +1,10 @@
+<template>
+  <div></div>
+</template>
+<script>
+export default {
+  methods:{
+
+  }
+}
+</script>
\ No newline at end of file
diff --git a/src/views/fysp/evaluation/components/CompPreCheck.vue b/src/views/fysp/evaluation/components/CompPreCheck.vue
index 315b76b..f99b60b 100644
--- a/src/views/fysp/evaluation/components/CompPreCheck.vue
+++ b/src/views/fysp/evaluation/components/CompPreCheck.vue
@@ -1,115 +1,76 @@
 <template>
-  <FYSearchBar @search="preCheck">
-    <template #options>
-      <!-- 鍖哄幙 -->
-      <FYOptionLocation
-        :allOption="false"
-        :level="3"
-        :checkStrictly="false"
-        v-model:value="formSearch._locations"
-      ></FYOptionLocation>
-      <!-- 鍦烘櫙绫诲瀷 -->
-      <FYOptionScene
-        :allOption="false"
-        :type="2"
-        v-model:value="formSearch.scenetype"
-      ></FYOptionScene>
-      <!-- 鏃堕棿 -->
-      <FYOptionTime type="month" v-model:value="formSearch.time"></FYOptionTime>
+  <el-steps :active="stepIndex" finish-status="success" style="" align-center>
+    <el-step title="璇勪及鑼冨洿" />
+    <el-step title="鏁版嵁婧愭鏌�" />
+    <el-step title="璞佸厤鏉$洰" />
+    <el-step title="鑷姩璇勪及" />
+  </el-steps>
+
+  <el-card v-if="stepIndex == 0" shadow="never">
+    <template #header>
+      <div><el-text tag="b" size="large">閫夋嫨璇勪及鑼冨洿</el-text></div>
+      <el-text size="small" type="info">鍖呮嫭鍖哄幙銆佸満鏅被鍨嬩互鍙婃湀浠�</el-text>
     </template>
-  </FYSearchBar>
-  <el-row>
-    <span>蹇嵎閫夋嫨</span>
-    <el-button v-for="(v, i) in quickSetting" :key="i" type="primary" @click="quickSet(v)">{{
-      v.name
-    }}</el-button>
-  </el-row>
+    <FYForm :form-info="evaConditon" :rules="evaConditionRules" :showButtons="false">
+      <template #form-item="{ formObj }">
+        <!-- 鍖哄幙 -->
+        <FYOptionLocation
+          :allOption="false"
+          :level="3"
+          :checkStrictly="false"
+          v-model:value="formObj.locations"
+        ></FYOptionLocation>
+        <!-- 鍦烘櫙绫诲瀷 -->
+        <FYOptionScene
+          :allOption="false"
+          :type="2"
+          v-model:value="formObj.scenetype"
+        ></FYOptionScene>
+        <!-- 鏃堕棿 -->
+        <FYOptionTime
+          :initValue="true"
+          type="month"
+          v-model:value="formObj.time"
+        ></FYOptionTime>
+      </template>
+    </FYForm>
+    <template #footer>
+      <el-row justify="space-around">
+        <el-button type="primary" size="default">涓嬩竴姝�</el-button>
+      </el-row>
+    </template>
+  </el-card>
+  <el-card v-if="stepIndex == 1" shadow="never"> Never2 </el-card>
+  <el-card v-if="stepIndex == 2" shadow="never"> Never3 </el-card>
+  <el-card v-if="stepIndex == 3" shadow="never"> Never4 </el-card>
 </template>
 
 <script>
+import dayjs from 'dayjs';
+
 /**
  * 鑷姩璇勪及鏉′欢鍚堣鎬ф鏌�
  */
 export default {
   name: 'CompPreCheck',
-  props: {
-    quickSetting: {
-      type: Array,
-      default: () => {
-        return [
-          {
-            name: '闈欏畨宸ュ湴',
-            locations: {
-              pCode: '31',
-              pName: '涓婃捣甯�',
-              cCode: '3100',
-              cName: '涓婃捣甯�',
-              dCode: '310106',
-              dName: '闈欏畨鍖�'
-            },
-            scenetype: { label: '宸ュ湴', value: '1' }
-          },
-          {
-            name: '寰愭眹椁愰ギ',
-            locations: {
-              pCode: '31',
-              pName: '涓婃捣甯�',
-              cCode: '3100',
-              cName: '涓婃捣甯�',
-              dCode: '310104',
-              dName: '寰愭眹鍖�'
-            },
-            scenetype: { label: '椁愰ギ', value: '5' }
-          },
-          {
-            name: '閲戝北宸ュ湴',
-            locations: {
-              pCode: '31',
-              pName: '涓婃捣甯�',
-              cCode: '3100',
-              cName: '涓婃捣甯�',
-              dCode: '310116',
-              dName: '閲戝北鍖�'
-            },
-            scenetype: { label: '宸ュ湴', value: '1' }
-          },
-          {
-            name: '閲戝北鐮佸ご',
-            locations: {
-              pCode: '31',
-              pName: '涓婃捣甯�',
-              cCode: '3100',
-              cName: '涓婃捣甯�',
-              dCode: '310116',
-              dName: '閲戝北鍖�'
-            },
-            scenetype: { label: '鐮佸ご', value: '2' }
-          },
-          {
-            name: '閲戝北鎼呮媽绔�',
-            locations: {
-              pCode: '31',
-              pName: '涓婃捣甯�',
-              cCode: '3100',
-              cName: '涓婃捣甯�',
-              dCode: '310116',
-              dName: '閲戝北鍖�'
-            },
-            scenetype: { label: '鎼呮媽绔�', value: '3' }
-          }
-        ]
-      }
-    }
-  },
+  props: {},
   emits: ['preCheck'],
   data() {
     return {
-      formSearch: {
-        _locations: {},
-        scenetype: {},
-        time: undefined
+      // 鎿嶄綔姝ラ涓嬫爣
+      stepIndex: 0,
+      // 璇勪及浠诲姟鑼冨洿
+      evaConditon: {},
+      evaConditionRules: {
+        acountname: [
+          {
+            required: true,
+            message: '璐︽埛鍚嶄笉鑳戒负绌�',
+            trigger: 'blur'
+          }
+        ]
       }
-    }
+    };
   },
   methods: {
     /**
@@ -117,18 +78,8 @@
      * 妫�鏌ユ墍閫夎寖鍥村唴鍚勯」璇勪及鏁版嵁婧愭槸鍚﹀畬鏁�
      */
     preCheck() {
-      this.$emit('preCheck', this.formSearch)
-    },
-
-    /**
-     * 蹇�熻缃潯浠�
-     */
-    quickSet(set) {
-      this.formSearch._locations = set.locations
-      this.formSearch.scenetype = set.scenetype
-
-      this.preCheck()
+      // this.$emit('preCheck', param)
     }
   }
-}
+};
 </script>
diff --git a/src/views/fysp/evaluation/components/CompQuickSet.vue b/src/views/fysp/evaluation/components/CompQuickSet.vue
new file mode 100644
index 0000000..23a99a8
--- /dev/null
+++ b/src/views/fysp/evaluation/components/CompQuickSet.vue
@@ -0,0 +1,94 @@
+<template>
+  <el-row>
+    <span>蹇嵎閫夋嫨</span>
+    <el-button v-for="(v, i) in quickSetting" :key="i" type="primary" @click="quickSet(v)">{{
+      v.name
+    }}</el-button>
+  </el-row>
+</template>
+<script>
+export default {
+  props: {
+    quickSetting: {
+      type: Array,
+      default: () => {
+        return [
+          {
+            name: '闈欏畨宸ュ湴',
+            locations: {
+              pCode: '31',
+              pName: '涓婃捣甯�',
+              cCode: '3100',
+              cName: '涓婃捣甯�',
+              dCode: '310106',
+              dName: '闈欏畨鍖�'
+            },
+            scenetype: { label: '宸ュ湴', value: '1' }
+          },
+          {
+            name: '寰愭眹椁愰ギ',
+            locations: {
+              pCode: '31',
+              pName: '涓婃捣甯�',
+              cCode: '3100',
+              cName: '涓婃捣甯�',
+              dCode: '310104',
+              dName: '寰愭眹鍖�'
+            },
+            scenetype: { label: '椁愰ギ', value: '5' }
+          },
+          {
+            name: '閲戝北宸ュ湴',
+            locations: {
+              pCode: '31',
+              pName: '涓婃捣甯�',
+              cCode: '3100',
+              cName: '涓婃捣甯�',
+              dCode: '310116',
+              dName: '閲戝北鍖�'
+            },
+            scenetype: { label: '宸ュ湴', value: '1' }
+          },
+          {
+            name: '閲戝北鐮佸ご',
+            locations: {
+              pCode: '31',
+              pName: '涓婃捣甯�',
+              cCode: '3100',
+              cName: '涓婃捣甯�',
+              dCode: '310116',
+              dName: '閲戝北鍖�'
+            },
+            scenetype: { label: '鐮佸ご', value: '2' }
+          },
+          {
+            name: '閲戝北鎼呮媽绔�',
+            locations: {
+              pCode: '31',
+              pName: '涓婃捣甯�',
+              cCode: '3100',
+              cName: '涓婃捣甯�',
+              dCode: '310116',
+              dName: '閲戝北鍖�'
+            },
+            scenetype: { label: '鎼呮媽绔�', value: '3' }
+          }
+        ]
+      }
+    }
+  },
+  emits: ['quickSet'],
+  methods: {
+    /**
+     * 蹇�熻缃潯浠�
+     * @param {locations, scenetype} set
+     */
+    quickSet(set) {
+      // this.formSearch.locations = set.locations
+      // this.formSearch.scenetype = set.scenetype
+
+      this.$emit('quickSet', set)
+    }
+  }
+}
+</script>
diff --git a/src/views/fytz/user/UserInfo.vue b/src/views/fytz/user/UserInfo.vue
index 27d814e..ac17524 100644
--- a/src/views/fytz/user/UserInfo.vue
+++ b/src/views/fytz/user/UserInfo.vue
@@ -6,7 +6,11 @@
         :level="4"
         v-model:value="formSearch._locations"
       ></FYOptionLocation>
-      <FYOptionText label="鍏抽敭瀛�" placeholder="杈撳叆鍚嶇О鍏抽敭瀛�" v-model:value="formSearch.searchText"></FYOptionText>
+      <FYOptionText
+        label="鍏抽敭瀛�"
+        placeholder="杈撳叆鍚嶇О鍏抽敭瀛�"
+        v-model:value="formSearch.searchText"
+      ></FYOptionText>
       <FYOptionScene
         :allOption="true"
         :type="1"
@@ -19,13 +23,7 @@
     </template>
 
     <template #table-column>
-      <el-table-column
-        type="index"
-        fixed="left"
-        prop="userInfo.realname"
-        label="鍚嶇О"
-        width="400"
-      >
+      <el-table-column type="index" fixed="left" prop="userInfo.realname" label="鍚嶇О" width="400">
         <template #default="scope">
           <el-tooltip
             effect="dark"
@@ -45,20 +43,16 @@
       <el-table-column prop="userInfo.extension1" label="鍖哄幙" width="90" />
       <el-table-column prop="biTownName" label="琛楅亾" width="110" />
       <el-table-column prop="biArea" label="闆嗕腑鍖�" width="110" />
-      <el-table-column prop="biManagementCompany" label="鐗╀笟" min-width="110"/>
+      <el-table-column prop="biManagementCompany" label="鐗╀笟" min-width="110" />
       <el-table-column prop="userInfo.isenable" label="鐘舵��" width="90">
         <template #default="scope">
           {{ scope.row.userInfo.isenable ? '涓婄嚎涓�' : '宸蹭笅绾�' }}
         </template>
       </el-table-column>
       <el-table-column prop="userInfo.usertype" label="鐢ㄦ埛绫诲瀷" width="90" />
-      <el-table-column fixed="right" align="right" label="鎿嶄綔" width="140">
+      <el-table-column fixed="right" align="right" label="鎿嶄綔" width="160">
         <template #header>
-          <el-button
-            icon="DocumentAdd"
-            size="default"
-            type="success"
-            @click="drawer = true"
+          <el-button icon="DocumentAdd" size="default" type="success" @click="drawer = true"
             >鏂板鐢ㄦ埛</el-button
           >
         </template>
@@ -70,13 +64,13 @@
             @click="editRow(scope)"
             >鏌ョ湅</el-button
           >
-          <!-- <el-button
+          <el-button
             :loading="scope.row.loading2"
-            :type="scope.row.extension1 != '0' ? 'danger' : 'primary'"
+            :type="scope.row.userInfo.isenable != '0' ? 'danger' : 'primary'"
             size="small"
             @click="itemActive(scope)"
-            >{{ scope.row.extension1 != '0' ? '涓嬬嚎' : '涓婄嚎' }}</el-button
-          > -->
+            >{{ scope.row.userInfo.isenable != '0' ? '涓嬬嚎' : '涓婄嚎' }}</el-button
+          >
         </template>
       </el-table-column>
     </template>
@@ -93,7 +87,7 @@
 
 export default {
   components: {
-    CompUserInfoAddDrawer,
+    CompUserInfoAddDrawer
   },
   data() {
     return {
@@ -101,26 +95,26 @@
         _locations: {},
         searchText: '',
         scensetype: {},
-        online: {},
+        online: {}
       },
-      drawer: false,
+      drawer: false
     };
   },
   computed: {
-    ...mapStores(useLoadingStore),
+    ...mapStores(useLoadingStore)
   },
   methods: {
     onSearch(page, func) {
       const f = this.formSearch;
       const area = {};
       // 琛屾斂鍖哄垝
-      area.provinceCode = f._locations.pCode ? f._locations.pCode + '0000' : undefined
+      area.provinceCode = f._locations.pCode;
       area.provinceName = f._locations.pName;
       if (area.provinceCode == null) {
         area.provinceCode = null;
         area.provinceName = null;
       }
-      area.cityCode = f._locations.cCode ? f._locations.cCode.substring(0, 3) + '100' : undefined
+      area.cityCode = f._locations.cCode;
       area.cityName = f._locations.cName;
       area.districtCode = f._locations.dCode;
       area.districtName = f._locations.dName;
@@ -140,43 +134,44 @@
         if (res) {
           func({
             data: res.data,
-            total: res.head.totalCount,
+            total: res.head.totalCount
           });
         }
       });
     },
     editRow(scope) {
       scope.row.loading1 = true;
-      this.loadingStore.loadingStatus.push(() => (scope.row.loading1 = false));
-      this.$router.push(`userEdit/${scope.row.biGuid}`);
+      this.loadingStore.pushLoading(() => (scope.row.loading1 = false));
+      this.$router.push(`userEdit/${scope.row.userInfo.guid}`);
     },
     itemActive(scope) {
-      const rb = {};
-      rb.guid = scope.row.guid;
-      rb.extension1 = scope.row.extension1 != '0' ? '0' : '1';
-      const msg = scope.row.extension1 != '0' ? '涓嬬嚎' : '涓婄嚎';
+      const param = {
+        guid: scope.row.userInfo.guid,
+        isenable: !scope.row.userInfo.isenable
+      };
+      const msg = scope.row.userInfo.isenable ? '涓嬬嚎' : '涓婄嚎';
       useMessageBoxTip({
         confirmMsg: `纭${msg}璇ュ満鏅紵`,
         confirmTitle: msg,
-        onConfirm: () => {
+        onConfirm: async () => {
           scope.row.loading2 = true;
           return userApi
-            .updateScene(rb)
+            .updateUserInfo(param)
             .then((res) => {
-              if (res == 1) {
-                scope.row.extension1 = rb.extension1;
+              if (res.success) {
+                scope.row.userInfo.isenable = param.isenable;
               }
             })
             .finally(() => {
               scope.row.loading2 = false;
             });
-        },
+        }
       });
     },
     tableRowClassName({ row }) {
       return row.userInfo.isenable ? 'online-row' : 'offline-row';
-    },
-  },
+    }
+  }
 };
 </script>
 <style></style>
diff --git a/src/views/fytz/user/components/CompUserInfoAddDrawer.vue b/src/views/fytz/user/components/CompUserInfoAddDrawer.vue
index cbd243a..fc0f3d1 100644
--- a/src/views/fytz/user/components/CompUserInfoAddDrawer.vue
+++ b/src/views/fytz/user/components/CompUserInfoAddDrawer.vue
@@ -58,9 +58,10 @@
       }
     },
     onDrawerCancel() {
-      this.onDrawerClose(() => {
-        this.drawer_ = false;
-      });
+      // this.onDrawerClose(() => {
+      //   this.drawer_ = false;
+      // });
+      this.drawer_ = false;
     },
   },
 };

--
Gitblit v1.9.3