浏览代码

数据同步功能

染尘落幕 2 月之前
父节点
当前提交
81fae2e9ae

+ 28 - 9
src/api/download.ts

@@ -92,16 +92,35 @@ export const getListTable = async data => {
   });
 };
 // 考核管理导入指标名单回显数据
+// export const importAssessmentQuotaDisplayBackData = async data => {
+//   const token = localStorage.getItem("token") || "";
+//   return axios.post(
+//     `${FLIE_URL}/assessment/importAssessmentQuotaDisplayBackData`,
+//     data,
+//     {
+//       headers: {
+//         "Content-Type": "multipart/form-data", // 指定内容类型
+//         satoken: token // 将 Token 添加到请求头
+//       }
+//     }
+//   );
+// };
+
 export const importAssessmentQuotaDisplayBackData = async data => {
   const token = localStorage.getItem("token") || "";
-  return axios.post(
-    `${FLIE_URL}/assessment/importAssessmentQuotaDisplayBackData`,
-    data,
-    {
-      headers: {
-        "Content-Type": "multipart/form-data", // 指定内容类型
-        satoken: token // 将 Token 添加到请求头
+  try {
+    const response = await axios.post(
+      `${FLIE_URL}/assessment/importAssessmentQuotaDisplayBackData`,
+      data,
+      {
+        headers: {
+          "Content-Type": "multipart/form-data", // 指定内容类型
+          satoken: token // 将 Token 添加到请求头
+        }
       }
-    }
-  );
+    );
+    return response;
+  } catch (error) {
+    console.log(error);
+  }
 };

+ 30 - 28
src/utils/http/index.ts

@@ -80,37 +80,37 @@ class PureHttp {
         return whiteList.find(url => url === config.url)
           ? config
           : new Promise(resolve => {
-              const data = getToken();
-              if (data) {
-                const now = new Date().getTime();
-                const expired = parseInt(data.expires) - now <= 0;
-                if (expired) {
-                  if (!PureHttp.isRefreshing) {
-                    PureHttp.isRefreshing = true;
-                    // token过期刷新
-                    useUserStoreHook()
-                      .handRefreshToken({ refreshToken: data.refreshToken })
-                      .then(res => {
-                        const token = res.data.accessToken;
-                        config.headers["Authorization"] = formatToken(token);
-                        PureHttp.requests.forEach(cb => cb(token));
-                        PureHttp.requests = [];
-                      })
-                      .finally(() => {
-                        PureHttp.isRefreshing = false;
-                      });
-                  }
-                  resolve(PureHttp.retryOriginalRequest(config));
-                } else {
-                  config.headers["Authorization"] = formatToken(
-                    data.accessToken
-                  );
-                  resolve(config);
+            const data = getToken();
+            if (data) {
+              const now = new Date().getTime();
+              const expired = parseInt(data.expires) - now <= 0;
+              if (expired) {
+                if (!PureHttp.isRefreshing) {
+                  PureHttp.isRefreshing = true;
+                  // token过期刷新
+                  useUserStoreHook()
+                    .handRefreshToken({ refreshToken: data.refreshToken })
+                    .then(res => {
+                      const token = res.data.accessToken;
+                      config.headers["Authorization"] = formatToken(token);
+                      PureHttp.requests.forEach(cb => cb(token));
+                      PureHttp.requests = [];
+                    })
+                    .finally(() => {
+                      PureHttp.isRefreshing = false;
+                    });
                 }
+                resolve(PureHttp.retryOriginalRequest(config));
               } else {
+                config.headers["Authorization"] = formatToken(
+                  data.accessToken
+                );
                 resolve(config);
               }
-            });
+            } else {
+              resolve(config);
+            }
+          });
       },
       error => {
         return Promise.reject(error);
@@ -128,7 +128,9 @@ class PureHttp {
         NProgress.done();
         // 统一返回接口报错信息
         if (response.data.code && response.data.code !== 200) {
-          if (response.data.code !== 10002) {
+          if ($config.url && $config.url.includes('/specialPortrait/getPersonDimensionChartsRanking') && response.data.code === 10002) {
+            console.log('不报错')
+          } else {
             message(response.data.msg, { type: "error" });
           }
         }

+ 117 - 433
src/views/evaluate/children/change/mould/manageObject.vue

@@ -564,7 +564,6 @@ const hangdleOpenClick = row => {
     assessmentId: null,
     remark: null
   });
-  console.log("hangdleOpenClick", row);
   editVxe.finalValue = row?.finalValue;
   editVxe.score = row?.score;
 };
@@ -825,7 +824,7 @@ const changTitle = () => {
   };
   return obj[$props.message.assessmentType];
 };
-const editDisabledEvent = ({}) => {};
+const editDisabledEvent = ({ }) => { };
 // 同步数据
 const automaticCollectionApi = async () => {
   const { code, msg } = await automaticCollection(initParams.indexParams);
@@ -966,6 +965,7 @@ const setTableHeaderApi = async () => {
     ElMessage.error(msg);
   }
 };
+const bistatus = ref(1) //(0同步中,1同步完成)
 const getAssessmentDetailsApi = async () => {
   const { code, data } = await getAssessmentDetails({
     id: messageData.value.id
@@ -979,8 +979,8 @@ const getAssessmentDetailsApi = async () => {
     assessmentHeader.showUpperValue = data.showUpperValue;
     assessmentHeader.showAgupperValue = data.showAgupperValue;
     assessmentHeader.showRemark = data.showRemark;
+    bistatus.value = data.bistatus;
     let aa = JSON.parse(JSON.stringify(assessmentHeader));
-    console.log(111111, aa);
     // 目标值
     aa.showTargetValue == 1
       ? showColEvent("targetValue")
@@ -1206,6 +1206,10 @@ const hideColEvent = field => {
 };
 const editIndexShow = ref(null);
 const editIndexOpen = (row: Object) => {
+  if (bistatus.value == 0) {
+    ElMessage.error("数据同步中,不允许操作");
+    return;
+  }
   editIndexShow.value.open({
     ...row,
     assessmentId: initParams.indexParams.assessmentId
@@ -1281,10 +1285,7 @@ const selectAllChangeEvent = row => {
 <template>
   <div class="w-full">
     <!-- 指标编辑 -->
-    <editIndex
-      ref="editIndexShow"
-      @getAssessmentQuotaDetailsApi="getAssessmentQuotaDetailsApi"
-    />
+    <editIndex ref="editIndexShow" @getAssessmentQuotaDetailsApi="getAssessmentQuotaDetailsApi" />
     <div class="w-full flex items-center justify-between">
       <div class="flex items-center justify-between mt-2">
         <div class="bg-icon">
@@ -1308,9 +1309,7 @@ const selectAllChangeEvent = row => {
       </div>
       <div class="mr-10">
         <Auth :value="['公布考核结果']">
-          <el-button v-if="publishShow" type="primary" @click="publish"
-            >公布考核结果</el-button
-          >
+          <el-button v-if="publishShow" type="primary" @click="publish" :disabled="bistatus == 0">公布考核结果</el-button>
         </Auth>
       </div>
     </div>
@@ -1319,80 +1318,36 @@ const selectAllChangeEvent = row => {
         <div class="w-full flex items-center justify-between">
           <div class="w-1/2 flex items-center justify-between">
             <el-text class="w-1/5">考核模板</el-text>
-            <el-select
-              v-model="initParams.objParams.modelName"
-              placeholder="请选择"
-              filterable
-              clearable
-              style="width: 250px"
-              @change="getAssessmentObjectDetailsApi"
-            >
-              <el-option
-                v-for="itemTmp in initParams.tmpList"
-                :key="itemTmp.id"
-                :label="itemTmp.assessmentModelName"
-                :value="itemTmp.assessmentModelName"
-              />
+            <el-select v-model="initParams.objParams.modelName" placeholder="请选择" filterable clearable
+              style="width: 250px" @change="getAssessmentObjectDetailsApi">
+              <el-option v-for="itemTmp in initParams.tmpList" :key="itemTmp.id" :label="itemTmp.assessmentModelName"
+                :value="itemTmp.assessmentModelName" />
             </el-select>
-            <el-input
-              v-model="initParams.objParams.userName"
-              class="ml-2"
-              clearable
-              placeholder="搜索"
-              :prefix-icon="Search"
-              @change="getAssessmentObjectDetailsApi"
-            />
+            <el-input v-model="initParams.objParams.userName" class="ml-2" clearable placeholder="搜索"
+              :prefix-icon="Search" @change="getAssessmentObjectDetailsApi" />
           </div>
           <div class="mr-10">
             <!-- <el-button type="primary" plain>批量调整执行人</el-button>
             <el-button type="primary" plain>批量重置流程</el-button> -->
             <Auth :value="['批量删除']">
-              <el-button type="primary" plain @click="delAssessmentObjectApi">
+              <el-button type="primary" plain @click="delAssessmentObjectApi" :disabled="bistatus == 0">
                 批量删除
               </el-button>
             </Auth>
             <Auth :value="['添加被考核人']">
-              <el-button type="primary" plain @click="dialogVisibleAddShow">{{
+              <el-button type="primary" plain @click="dialogVisibleAddShow" :disabled="bistatus == 0">{{
                 changTitle()
               }}</el-button>
             </Auth>
           </div>
         </div>
-        <el-table
-          :data="objList"
-          style="width: 100%"
-          @selection-change="changeSelection"
-        >
+        <el-table :data="objList" style="width: 100%" @selection-change="changeSelection">
           <el-table-column type="selection" width="55" />
-          <el-table-column
-            v-if="state.tableType == 0 || state.tableType == 3"
-            prop="realName"
-            label="人员"
-            width="100"
-          />
-          <el-table-column
-            v-if="state.tableType == 2"
-            prop="assessmentObjectName"
-            label="医疗组"
-            width="100"
-          />
-          <el-table-column
-            v-if="state.tableType == 0 || state.tableType == 3"
-            prop="userName"
-            label="工号"
-            width="180"
-          />
-          <el-table-column
-            v-if="state.tableType != 2"
-            prop="deptName"
-            label="科室"
-            width="180"
-          />
-          <el-table-column
-            prop="assessmentModelName"
-            label="考核模板"
-            width="300"
-          />
+          <el-table-column v-if="state.tableType == 0 || state.tableType == 3" prop="realName" label="人员" width="100" />
+          <el-table-column v-if="state.tableType == 2" prop="assessmentObjectName" label="医疗组" width="100" />
+          <el-table-column v-if="state.tableType == 0 || state.tableType == 3" prop="userName" label="工号" width="180" />
+          <el-table-column v-if="state.tableType != 2" prop="deptName" label="科室" width="180" />
+          <el-table-column prop="assessmentModelName" label="考核模板" width="300" />
           <el-table-column prop="name" label="更新时间" width="150" sortable>
             <template #default="{ row }">
               {{ dayjs(row.updateTime).format("YYYY-MM-DD HH:mm:ss") }}
@@ -1412,15 +1367,10 @@ const selectAllChangeEvent = row => {
             <!-- 共{{ initParams.total }}条数据 -->
           </div>
           <div class="float-right mt-5 mr-8">
-            <el-pagination
-              v-model:current-page="initParams.objParams.pageNumber"
-              v-model:page-size="initParams.objParams.pageSize"
-              background
-              layout="total, sizes, prev, pager, next, jumper"
-              :total="initParams.total"
-              @size-change="handleSizeChange"
-              @current-change="handleCurrentChange"
-            />
+            <el-pagination v-model:current-page="initParams.objParams.pageNumber"
+              v-model:page-size="initParams.objParams.pageSize" background
+              layout="total, sizes, prev, pager, next, jumper" :total="initParams.total" @size-change="handleSizeChange"
+              @current-change="handleCurrentChange" />
           </div>
         </div>
       </el-tab-pane>
@@ -1428,34 +1378,15 @@ const selectAllChangeEvent = row => {
         <div class="w-full flex items-center justify-between">
           <div class="w-1/2 flex items-center justify-between">
             <!-- <el-text class="w-1/5">考核模板</el-text> -->
-            <el-select
-              v-model="initParams.indexParams.modelName"
-              placeholder="请选择考核模板"
-              filterable
-              clearable
-              style="width: 400px"
-              @change="getAssessmentQuotaDetailsApi"
-            >
-              <el-option
-                v-for="itemTmp in initParams.tmpList"
-                :key="itemTmp.id"
-                :label="itemTmp.assessmentModelName"
-                :value="itemTmp.assessmentModelName"
-              />
+            <el-select v-model="initParams.indexParams.modelName" placeholder="请选择考核模板" filterable clearable
+              style="width: 400px" @change="getAssessmentQuotaDetailsApi">
+              <el-option v-for="itemTmp in initParams.tmpList" :key="itemTmp.id" :label="itemTmp.assessmentModelName"
+                :value="itemTmp.assessmentModelName" />
             </el-select>
-            <el-input
-              v-model="initParams.indexParams.userName"
-              class="ml-1"
-              placeholder="搜索"
-              @change="getAssessmentQuotaDetailsApi"
-            />
-            <el-input
-              v-model="initParams.indexParams.quotaName"
-              class="ml-2"
-              placeholder="搜索指标名称"
-              :prefix-icon="Search"
-              @change="getAssessmentQuotaDetailsApi"
-            />
+            <el-input v-model="initParams.indexParams.userName" class="ml-1" placeholder="搜索"
+              @change="getAssessmentQuotaDetailsApi" />
+            <el-input v-model="initParams.indexParams.quotaName" class="ml-2" placeholder="搜索指标名称" :prefix-icon="Search"
+              @change="getAssessmentQuotaDetailsApi" />
           </div>
           <!-- <div class="-mr-">
             <el-button type="primary" plain @click="automaticCollectionApi"
@@ -1463,186 +1394,82 @@ const selectAllChangeEvent = row => {
             >
           </div> -->
           <div class="mr-10 flex items-center justify-between">
-            <el-button type="primary" plain @click="deleteMantList"
-              >批量删除</el-button
-            >
-            <el-button type="primary" plain @click="automaticCollectionApi"
-              >同步最新数据</el-button
-            >
+            <el-button type="primary" plain @click="deleteMantList" :disabled="bistatus == 0">批量删除</el-button>
+            <el-button type="primary" :disabled="bistatus == 0" plain @click="automaticCollectionApi">{{ bistatus == 0 ?
+              '正在同步中...' : '同步最新数据' }}</el-button>
             <Auth :value="['批量导入指标']">
-              <el-button type="primary" plain @click="addsImport"
-                >批量导入</el-button
-              >
+              <el-button type="primary" plain @click="addsImport" :disabled="bistatus == 0">批量导入</el-button>
             </Auth>
           </div>
         </div>
-        <vxe-table
-          ref="tableVxeRef"
-          class="mt-3"
-          show-overflow
-          keep-source
-          :edit-config="editConfig"
-          :edit-rules="validRules"
-          :data="initParams.Indexlist"
-          @edit-closed="editClosedEvent"
-          @checkbox-change="selectChangeEvent"
-          @checkbox-all="selectAllChangeEvent"
-          @selection-change="changeSelection"
-          @edit-disabled="editDisabledEvent"
-        >
+        <vxe-table ref="tableVxeRef" class="mt-3" show-overflow keep-source :edit-config="editConfig"
+          :edit-rules="validRules" :data="initParams.Indexlist" @edit-closed="editClosedEvent"
+          @checkbox-change="selectChangeEvent" @checkbox-all="selectAllChangeEvent" @selection-change="changeSelection"
+          @edit-disabled="editDisabledEvent">
           <vxe-column type="checkbox" width="60" />
-          <vxe-column
-            v-if="state.tableType == 0 || state.tableType == 3"
-            field="realName"
-            fixed
-            title="人员"
-            width="100"
-          />
+          <vxe-column v-if="state.tableType == 0 || state.tableType == 3" field="realName" fixed title="人员" width="100" />
           <!-- :员工,1:部门,2:医疗组,3:部门负责人 -->
-          <vxe-column
-            v-if="state.tableType == 0 || state.tableType == 3"
-            field="userName"
-            fixed
-            title="工号"
-            width="180"
-          />
-          <vxe-column
-            v-if="state.tableType == 0 || state.tableType == 3"
-            field="deptName"
-            fixed
-            title="部门"
-            width="180"
-          />
-          <vxe-column
-            v-if="state.tableType == 2"
-            field="userGroupName"
-            fixed
-            title="医疗组"
-            width="180"
-          />
-          <vxe-column
-            v-if="state.tableType == 2"
-            field="userGroupHospitalCode"
-            fixed
-            title="医疗组编号"
-            width="180"
-          />
-          <vxe-column
-            v-if="state.tableType == 1"
-            field="deptName"
-            fixed
-            title="部门"
-            width="180"
-          />
-          <vxe-column
-            v-if="state.tableType == 1"
-            field="deptHospitalCode"
-            fixed
-            title="部门编号"
-            width="200"
-          />
-          <vxe-column
-            field="assessmentModelName"
-            fixed
-            title="考核模板"
-            width="180"
-          />
+          <vxe-column v-if="state.tableType == 0 || state.tableType == 3" field="userName" fixed title="工号" width="180" />
+          <vxe-column v-if="state.tableType == 0 || state.tableType == 3" field="deptName" fixed title="部门" width="180" />
+          <vxe-column v-if="state.tableType == 2" field="userGroupName" fixed title="医疗组" width="180" />
+          <vxe-column v-if="state.tableType == 2" field="userGroupHospitalCode" fixed title="医疗组编号" width="180" />
+          <vxe-column v-if="state.tableType == 1" field="deptName" fixed title="部门" width="180" />
+          <vxe-column v-if="state.tableType == 1" field="deptHospitalCode" fixed title="部门编号" width="200" />
+          <vxe-column field="assessmentModelName" fixed title="考核模板" width="180" />
           <vxe-column field="name" fixed title="指标名称" width="180" />
           <vxe-column field="scoreRule" fixed title="评价标准" width="180" />
           <vxe-column field="source" fixed title="数据来源" width="180" />
-          <vxe-column
-            field="targetValue"
-            fixed
-            title="目标值"
-            :edit-render="{
-              name: 'input'
-            }"
-            width="180"
-          />
-          <vxe-column
-            field="addValue"
-            fixed
-            title="增幅"
-            :edit-render="{
-              name: 'input'
-            }"
-            width="180"
-          >
+          <vxe-column field="targetValue" fixed title="目标值" :edit-render="{
+            name: 'input'
+          }" width="180" />
+          <vxe-column field="addValue" fixed title="增幅" :edit-render="{
+            name: 'input'
+          }" width="180">
             <template #default="{ row }">
               <div @click="hangdleOpenClick(row)">
                 {{ row.addValue }}
               </div>
             </template>
           </vxe-column>
-          <vxe-column
-            field="decValue"
-            fixed
-            title="降幅"
-            :edit-render="{
-              name: 'input'
-            }"
-            width="180"
-          >
+          <vxe-column field="decValue" fixed title="降幅" :edit-render="{
+            name: 'input'
+          }" width="180">
             <template #default="{ row }">
               <div @click="hangdleOpenClick(row)">
                 {{ row.decValue }}
               </div>
             </template>
           </vxe-column>
-          <vxe-column
-            field="challengeValue"
-            fixed
-            title="挑战值"
-            :edit-render="{
-              name: 'input'
-            }"
-            width="180"
-          >
+          <vxe-column field="challengeValue" fixed title="挑战值" :edit-render="{
+            name: 'input'
+          }" width="180">
             <template #default="{ row }">
               <div @click="hangdleOpenClick(row)">
                 {{ row.challengeValue }}
               </div>
             </template>
           </vxe-column>
-          <vxe-column
-            field="startValue"
-            fixed
-            title="门槛值"
-            :edit-render="{
-              name: 'input'
-            }"
-            width="180"
-          >
+          <vxe-column field="startValue" fixed title="门槛值" :edit-render="{
+            name: 'input'
+          }" width="180">
             <template #default="{ row }">
               <div @click="hangdleOpenClick(row)">
                 {{ row.startValue }}
               </div>
             </template>
           </vxe-column>
-          <vxe-column
-            field="upperValue"
-            fixed
-            title="上期完成值"
-            :edit-render="{
-              name: 'input'
-            }"
-            width="180"
-          >
+          <vxe-column field="upperValue" fixed title="上期完成值" :edit-render="{
+            name: 'input'
+          }" width="180">
             <template #default="{ row }">
               <div @click="hangdleOpenClick(row)">
                 {{ row.upperValue }}
               </div>
             </template>
           </vxe-column>
-          <vxe-column
-            field="agupperValue"
-            fixed
-            title="上上期完成值"
-            :edit-render="{
-              name: 'input'
-            }"
-            width="180"
-          >
+          <vxe-column field="agupperValue" fixed title="上上期完成值" :edit-render="{
+            name: 'input'
+          }" width="180">
             <template #default="{ row }">
               <div @click="hangdleOpenClick(row)">
                 {{ row.agupperValue }}
@@ -1650,15 +1477,9 @@ const selectAllChangeEvent = row => {
             </template>
           </vxe-column>
 
-          <vxe-column
-            field="finalValue"
-            fixed
-            title="完成值"
-            :edit-render="{
-              name: 'input'
-            }"
-            width="180"
-          >
+          <vxe-column field="finalValue" fixed title="完成值" :edit-render="{
+            name: 'input'
+          }" width="180">
             <template #default="{ row }">
               <div @click="hangdleOpenClick(row)">
                 {{ convertToNumberIfPercentage(row.finalValue) }}
@@ -1666,30 +1487,18 @@ const selectAllChangeEvent = row => {
             </template>
           </vxe-column>
 
-          <vxe-column
-            field="score"
-            fixed
-            title="得分"
-            :edit-render="{
-              name: 'input'
-            }"
-            width="180"
-          >
+          <vxe-column field="score" fixed title="得分" :edit-render="{
+            name: 'input'
+          }" width="180">
             <template #default="{ row }">
               <div @click="hangdleOpenClick(row)">
                 {{ row.score }}
               </div>
             </template>
           </vxe-column>
-          <vxe-column
-            field="remark"
-            fixed
-            title="备注"
-            :edit-render="{
-              name: 'textarea'
-            }"
-            width="180"
-          >
+          <vxe-column field="remark" fixed title="备注" :edit-render="{
+            name: 'textarea'
+          }" width="180">
             <template #default="{ row }">
               <div @click="hangdleOpenClick(row)">
                 {{ row.remark }}
@@ -1721,100 +1530,56 @@ const selectAllChangeEvent = row => {
                           <div class="w-24">
                             <el-text type="info" size="small">目标值</el-text>
                           </div>
-                          <el-switch
-                            v-model="showTargetValueSwitch"
-                            size="small"
-                            class="ml-2"
-                          />
+                          <el-switch v-model="showTargetValueSwitch" size="small" class="ml-2" />
                         </div>
                         <div class="w-full flex justify-evenly items-center">
                           <div class="w-24">
                             <el-text type="info" size="small">增幅</el-text>
                           </div>
-                          <el-switch
-                            v-model="showAddValueSwitch"
-                            size="small"
-                            class="ml-2"
-                          />
+                          <el-switch v-model="showAddValueSwitch" size="small" class="ml-2" />
                         </div>
                         <div class="w-full flex justify-evenly items-center">
                           <div class="w-24">
                             <el-text type="info" size="small">降幅</el-text>
                           </div>
-                          <el-switch
-                            v-model="showDecValueSwitch"
-                            size="small"
-                            class="ml-2"
-                          />
+                          <el-switch v-model="showDecValueSwitch" size="small" class="ml-2" />
                         </div>
                         <div class="w-full flex justify-evenly items-center">
                           <div class="w-24">
                             <el-text type="info" size="small">挑战值</el-text>
                           </div>
-                          <el-switch
-                            v-model="showChallengeValueSwitch"
-                            size="small"
-                            class="ml-2"
-                          />
+                          <el-switch v-model="showChallengeValueSwitch" size="small" class="ml-2" />
                         </div>
                         <div class="w-full flex justify-evenly items-center">
                           <div class="w-24">
                             <el-text type="info" size="small">门槛值</el-text>
                           </div>
-                          <el-switch
-                            v-model="showStartValueSwitch"
-                            size="small"
-                            class="ml-2"
-                          />
+                          <el-switch v-model="showStartValueSwitch" size="small" class="ml-2" />
                         </div>
                         <div class="w-full flex justify-evenly items-center">
                           <div class="w-24">
-                            <el-text type="info" size="small"
-                              >上期完成值</el-text
-                            >
+                            <el-text type="info" size="small">上期完成值</el-text>
                           </div>
-                          <el-switch
-                            v-model="showUpperValueSwitch"
-                            size="small"
-                            class="ml-2"
-                          />
+                          <el-switch v-model="showUpperValueSwitch" size="small" class="ml-2" />
                         </div>
                         <div class="w-full flex justify-evenly items-center">
                           <div class="w-24">
-                            <el-text type="info" size="small"
-                              >上上期完成值</el-text
-                            >
+                            <el-text type="info" size="small">上上期完成值</el-text>
                           </div>
-                          <el-switch
-                            v-model="showAgupperValueSwitch"
-                            size="small"
-                            class="ml-2"
-                          />
+                          <el-switch v-model="showAgupperValueSwitch" size="small" class="ml-2" />
                         </div>
                         <div class="w-full flex justify-evenly items-center">
                           <div class="w-24">
                             <el-text type="info" size="small">备注</el-text>
                           </div>
-                          <el-switch
-                            v-model="remarkValueValue"
-                            size="small"
-                            class="ml-2"
-                          />
+                          <el-switch v-model="remarkValueValue" size="small" class="ml-2" />
                         </div>
                       </div>
                     </div>
                     <el-dropdown-item>
                       <div class="mt-4 ml-20 mb-2 flex float-right">
-                        <el-tag effect="light" class="mr-3" size="small"
-                          >取消</el-tag
-                        >
-                        <el-tag
-                          effect="dark"
-                          size="small"
-                          type="primary"
-                          @click="setTableHeaderApi"
-                          >确认</el-tag
-                        >
+                        <el-tag effect="light" class="mr-3" size="small">取消</el-tag>
+                        <el-tag effect="dark" size="small" type="primary" @click="setTableHeaderApi">确认</el-tag>
                       </div>
                     </el-dropdown-item>
                   </el-dropdown-menu>
@@ -1836,15 +1601,10 @@ const selectAllChangeEvent = row => {
             <!-- 共{{ initParams.total1 }}条数据 -->
           </div>
           <div class="float-right mt-5 mr-8">
-            <el-pagination
-              v-model:current-page="initParams.indexParams.pageNumber"
-              v-model:page-size="initParams.indexParams.pageSize"
-              background
-              layout="total, sizes, prev, pager, next, jumper"
-              :total="initParams.total1"
-              @size-change="handleSizeIndexChange"
-              @current-change="handleCurrentIndexChange"
-            />
+            <el-pagination v-model:current-page="initParams.indexParams.pageNumber"
+              v-model:page-size="initParams.indexParams.pageSize" background
+              layout="total, sizes, prev, pager, next, jumper" :total="initParams.total1"
+              @size-change="handleSizeIndexChange" @current-change="handleCurrentIndexChange" />
           </div>
         </div>
       </el-tab-pane>
@@ -1852,112 +1612,36 @@ const selectAllChangeEvent = row => {
       </el-tab-pane> -->
       <el-tab-pane label="基础信息" name="fourth">
         <!-- 延迟加载获取id -->
-        <messagePerson v-if="messageData.id" :id="messageData.id" />
+        <messagePerson v-if="messageData.id" :id="messageData.id" :bistatus="bistatus" />
       </el-tab-pane>
     </el-tabs>
     <!-- 添加被考核人 -->
-    <el-dialog
-      v-model="dialogVisibleAdd"
-      :title="changTitle()"
-      width="500"
-      :before-close="closePerson"
-    >
+    <el-dialog v-model="dialogVisibleAdd" :title="changTitle()" width="500" :before-close="closePerson">
       <div>
-        <el-form
-          ref="ruleFormRef"
-          label-position="top"
-          label-width="auto"
-          :model="addPersonParams"
-          :rules="addPersonParamsRules"
-        >
-          <el-form-item
-            v-if="$props.message.assessmentType == 0"
-            label="人员"
-            label-position="top"
-            prop="value1"
-          >
-            <el-tree-select
-              ref="assessmentTypeRef"
-              v-model="addPersonParams.value1"
-              :data="convertDepartmentDataRecursive_Person(treeDept)"
-              multiple
-              :render-after-expand="false"
-              show-checkbox
-              @check-change="handleRreeSelect"
-            />
+        <el-form ref="ruleFormRef" label-position="top" label-width="auto" :model="addPersonParams"
+          :rules="addPersonParamsRules">
+          <el-form-item v-if="$props.message.assessmentType == 0" label="人员" label-position="top" prop="value1">
+            <el-tree-select ref="assessmentTypeRef" v-model="addPersonParams.value1"
+              :data="convertDepartmentDataRecursive_Person(treeDept)" multiple :render-after-expand="false" show-checkbox
+              @check-change="handleRreeSelect" />
           </el-form-item>
-          <el-form-item
-            v-else-if="$props.message.assessmentType == 1"
-            label="科室"
-            label-position="top"
-            prop="value1"
-          >
-            <el-tree-select
-              ref="assessmentTypeRef"
-              v-model="addPersonParams.value1"
-              :data="dpetTree"
-              multiple
-              check-strictly
-              :render-after-expand="false"
-              show-checkbox
-              @check-change="handleRreeSelect"
-            />
+          <el-form-item v-else-if="$props.message.assessmentType == 1" label="科室" label-position="top" prop="value1">
+            <el-tree-select ref="assessmentTypeRef" v-model="addPersonParams.value1" :data="dpetTree" multiple
+              check-strictly :render-after-expand="false" show-checkbox @check-change="handleRreeSelect" />
           </el-form-item>
-          <el-form-item
-            v-else-if="$props.message.assessmentType == 2"
-            label="医疗组"
-            label-position="top"
-            prop="value1"
-          >
-            <el-select
-              ref="selectRefs"
-              v-model="addPersonParams.value1"
-              multiple
-              @change="handChange"
-            >
-              <el-option
-                v-for="(it, id) in treeDeptList"
-                :key="id"
-                :label="it.groupName"
-                :value="it.groupCode"
-              />
+          <el-form-item v-else-if="$props.message.assessmentType == 2" label="医疗组" label-position="top" prop="value1">
+            <el-select ref="selectRefs" v-model="addPersonParams.value1" multiple @change="handChange">
+              <el-option v-for="(it, id) in treeDeptList" :key="id" :label="it.groupName" :value="it.groupCode" />
             </el-select>
           </el-form-item>
-          <el-form-item
-            v-else-if="$props.message.assessmentType == 3"
-            label="人员"
-            label-position="top"
-            prop="value1"
-          >
-            <el-select
-              ref="selectRefs"
-              v-model="addPersonParams.value1"
-              multiple
-              @change="handChange"
-            >
-              <el-option
-                v-for="(it, id) in treeDeptList"
-                :key="id"
-                :label="it.realName"
-                :value="it.userCode"
-              />
+          <el-form-item v-else-if="$props.message.assessmentType == 3" label="人员" label-position="top" prop="value1">
+            <el-select ref="selectRefs" v-model="addPersonParams.value1" multiple @change="handChange">
+              <el-option v-for="(it, id) in treeDeptList" :key="id" :label="it.realName" :value="it.userCode" />
             </el-select>
           </el-form-item>
-          <el-form-item
-            label="考核模板"
-            label-position="top"
-            prop="modulesValue"
-          >
-            <el-select
-              v-model="addPersonParams.modulesValue"
-              @change="handleModulesSelect"
-            >
-              <el-option
-                v-for="itemTmp in modulesList"
-                :key="itemTmp.id"
-                :label="itemTmp.tpName"
-                :value="itemTmp.id"
-              />
+          <el-form-item label="考核模板" label-position="top" prop="modulesValue">
+            <el-select v-model="addPersonParams.modulesValue" @change="handleModulesSelect">
+              <el-option v-for="itemTmp in modulesList" :key="itemTmp.id" :label="itemTmp.tpName" :value="itemTmp.id" />
             </el-select>
           </el-form-item>
         </el-form>

+ 21 - 82
src/views/evaluate/children/change/mould/message.vue

@@ -20,6 +20,10 @@ const $emit = defineEmits(["addHandClick"]);
 const $props = defineProps({
   id: {
     type: String
+  },
+  bistatus: {
+    type: Number,
+    default: 1
   }
 });
 const params = reactive({
@@ -328,76 +332,40 @@ onMounted(() => {
 
 <template>
   <div class="w-[500px] m-auto">
-    <el-form
-      :model="form"
-      label-width="auto"
-      style="max-width: 600px"
-      :rules="rules"
-      label-position="top"
-    >
+    <el-form :model="form" label-width="auto" style="max-width: 600px" :rules="rules" label-position="top">
       <el-form-item label="考核名称" prop="name">
         <el-input v-model="form.name" :disabled="btn" placeholder="请输入" />
       </el-form-item>
       <el-form-item label="考核周期">
-        <el-radio-group
-          v-model="form.cycle"
-          disabled
-          @change="handleRegionChange"
-        >
+        <el-radio-group v-model="form.cycle" disabled @change="handleRegionChange">
           <el-radio value="月度" size="large">月度</el-radio>
           <el-radio value="季度" size="large">季度</el-radio>
           <el-radio value="半年" size="large">半年</el-radio>
           <el-radio value="年度" size="large">年度</el-radio>
           <el-radio value="日期" size="large">日期</el-radio>
         </el-radio-group>
-        <el-date-picker
-          v-if="
-            timeType === '月度' || timeType === '日期' || timeType === '年度'
-          "
-          v-model="form.cycleValue"
-          disabled
-          :type="pickerType"
-          :format="format"
-          placeholder="请选择"
-        />
-        <el-dropdown
-          v-else-if="timeType === '季度' || timeType === '半年'"
-          trigger="click"
-        >
+        <el-date-picker v-if="timeType === '月度' || timeType === '日期' || timeType === '年度'
+          " v-model="form.cycleValue" disabled :type="pickerType" :format="format" placeholder="请选择" />
+        <el-dropdown v-else-if="timeType === '季度' || timeType === '半年'" trigger="click">
           <span class="el-dropdown-link navbar-bg-hover select-none">
-            <el-input
-              v-model="form.cycleValue"
-              style="width: 240px"
-              placeholder="请选择"
-              :prefix-icon="Calendar"
-              disabled
-            />
+            <el-input v-model="form.cycleValue" style="width: 240px" placeholder="请选择" :prefix-icon="Calendar" disabled />
           </span>
           <template #dropdown>
             <el-dropdown-menu class="setting" style="width: 300px">
               <div class="flex justify-between align-center text-base mt-4">
-                <div
-                  class="cursor-pointer ml-4 text-xs pt-2"
-                  @click="decreaseYear"
-                >
+                <div class="cursor-pointer ml-4 text-xs pt-2" @click="decreaseYear">
                   <el-icon>
                     <DArrowLeft />
                   </el-icon>
                 </div>
                 <div>{{ yearTime }}</div>
-                <div
-                  class="cursor-pointer mr-4 text-xs pt-2"
-                  @click="increaseYear"
-                >
+                <div class="cursor-pointer mr-4 text-xs pt-2" @click="increaseYear">
                   <el-icon>
                     <DArrowRight />
                   </el-icon>
                 </div>
               </div>
-              <div
-                v-if="quarterValue"
-                class="flex justify-center align-center mt-5 mb-5"
-              >
+              <div v-if="quarterValue" class="flex justify-center align-center mt-5 mb-5">
                 <el-dropdown-item @click="monthOne('一季度')">
                   一季度
                 </el-dropdown-item>
@@ -424,29 +392,17 @@ onMounted(() => {
         </el-dropdown>
       </el-form-item>
       <el-form-item label="被考核类型">
-        <el-select
-          v-model="form.assessmentType"
-          placeholder="请选择被考核类型"
-          disabled
-        >
+        <el-select v-model="form.assessmentType" placeholder="请选择被考核类型" disabled>
           <el-option label="员工" :value="0" />
           <el-option label="部门" :value="1" />
           <el-option label="医疗" :value="2" />
           <el-option label="部门负责人" :value="3" />
         </el-select>
       </el-form-item>
-      <el-form-item
-        label="被考核对象与模板设置"
-        prop="form1"
-        label-position="top"
-      >
+      <el-form-item label="被考核对象与模板设置" prop="form1" label-position="top">
         <div class="w-full flex">
           <div class="w-1/3">
-            <el-form
-              label-position="top"
-              :model="form.assessmentObjectList"
-              :rules="formLeftRules"
-            >
+            <el-form label-position="top" :model="form.assessmentObjectList" :rules="formLeftRules">
               <el-form-item label="被考核对象" prop="left">
                 <div class="w-full mt-1 flex flex-wrap">
                   <!-- 人员,负责人 -->
@@ -466,11 +422,8 @@ onMounted(() => {
                   {{
                     console.log("assessmentObjectList", assessmentObjectList)
                   }}
-                  <div
-                    v-for="(item, index) in assessmentObjectList"
-                    :key="index"
-                    class="text-gray-400 w-full flex flex-wrap object mt-1"
-                  >
+                  <div v-for="(item, index) in assessmentObjectList" :key="index"
+                    class="text-gray-400 w-full flex flex-wrap object mt-1">
                     <div v-for="(it, id) in item" :key="id" class="h-6">
                       {{ it.assessmentObjectName }},
                     </div>
@@ -480,11 +433,7 @@ onMounted(() => {
             </el-form>
           </div>
           <div class="w-1/2 ml-7">
-            <el-form
-              label-position="top"
-              :model="form.assessmentObjectList"
-              :rules="formRightRules"
-            >
+            <el-form label-position="top" :model="form.assessmentObjectList" :rules="formRightRules">
               <el-form-item label="考核模板" prop="right">
                 <div class="w-full flex flex-wrap mt-1 aaa">
                   <!-- <el-select
@@ -501,11 +450,7 @@ onMounted(() => {
                       :value="itemTmp.assessmentModelId"
                     />
                   </el-select> -->
-                  <div
-                    v-for="(item, index) in assessmentModelList"
-                    :key="index"
-                    class="text-gray-400"
-                  >
+                  <div v-for="(item, index) in assessmentModelList" :key="index" class="text-gray-400">
                     <div class="mt-2">{{ item.assessmentModelName }}</div>
                   </div>
                 </div>
@@ -515,13 +460,7 @@ onMounted(() => {
         </div>
       </el-form-item>
     </el-form>
-    <el-button
-      v-if="btn"
-      class="float-right mt-4"
-      type="warning"
-      @click="btnShow"
-      >编辑</el-button
-    >
+    <el-button v-if="btn" class="float-right mt-4" type="warning" @click="btnShow" :disabled="bistatus == 0">编辑</el-button>
     <div v-else class="float-right mt-4">
       <el-button @click="handleClose">取消</el-button>
       <el-button type="primary" @click="saveDepartment"> 确认 </el-button>