iZaiZaiA 2 anni fa
parent
commit
41133c3775

+ 1 - 1
src/api/modules/other-file/imageData.js

@@ -50,7 +50,7 @@ export default {
         }, msg);
     },
     //新增影音资料信息
-    async addImageclassifyFile(form) {
+    async addImageclassifyFile(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/imageClassificationFile/save',
             method: 'post',

+ 1 - 1
src/global/components/hc-report-modal/index.vue

@@ -16,7 +16,7 @@
                 <HcTasksUser ui="w-full"/>
             </el-form-item>
             <el-form-item label="任务人">
-                <div class="form-item-div">测试的{{linkUserJoinString}}</div>
+                <div class="form-item-div">{{linkUserJoinString}}</div>
             </el-form-item>
             <el-form-item label="上报批次" path="batch">
                 <HcCounter v-model:value="formModel.batch" @update:modelValue="batchUpdateValue"/>

+ 1 - 1
src/layout/layout.scss

@@ -77,7 +77,7 @@
                     color: white;
                     background: var(--el-color-primary);
                     border-radius: 6px;
-                    box-shadow: 3px 2px 8px 0 var(--el-color-primary-light-5);
+                    box-shadow: 3px 2px 8px 0 var(--hc-shadow-color-5);
                 }
                 &:not(.active) {
                     cursor: pointer;

+ 2 - 2
src/layout/modules/MenuBar.vue

@@ -126,7 +126,7 @@ const MenuClick = (item) => {
         .hc-aside-menu-item {
             --radius-size: 20px;
             background-color: var(--el-color-primary);
-            box-shadow: 0 2px 8px 0 var(--el-color-primary-light-5);
+            box-shadow: 0 2px 8px 0 var(--hc-shadow-color-5);
             &::before, &::after {
                 content: '';
                 display: block;
@@ -225,7 +225,7 @@ const MenuClick = (item) => {
         .hc-aside-menu-item {
             color: #ffffff !important;
             background-color: var(--el-color-primary);
-            box-shadow: 0 2px 8px 0 var(--el-color-primary-light-5);
+            box-shadow: 0 2px 8px 0 var(--hc-shadow-color-5);
             &::before, &::after {
                 content: '';
                 display: none;

+ 6 - 0
src/styles/app/_color.scss

@@ -7,6 +7,12 @@
 }
 
 @each $name, $value in $colors {
+    //主色
+    .color-#{$name} {
+        @for $i from 1 to 10 {
+            --hc-shadow-color-#{$i}: #{rgba($value, 0.1 * $i)};
+        }
+    }
     //背景颜色
     .bg-#{$name} {
         background-color: $value !important;

+ 6 - 4
src/views/data-fill/components/HcUpload.vue

@@ -1,6 +1,7 @@
 <template>
     <el-upload class="hc-upload-border" drag :action="action" :headers="getTokenHeader()" :data="uploadData" :accept="accept" :file-list="fileListData" multiple :disabled="uploadDisabled"
-    :on-preview="uploadPreview" :before-remove="delUploadData" :on-success="uploadSuccess" :on-exceed="uploadExceed" :on-error="uploadError" :before-upload="beforeUpload" :on-progress="uploadPreview" :on-remove="uploadRemove">
+               :on-preview="uploadPreview" :before-remove="delUploadData" :on-success="uploadSuccess" :on-exceed="uploadExceed" :on-error="uploadError" :before-upload="beforeUpload"
+               :on-progress="uploadPreview" :on-remove="uploadRemove">
         <div class="hc-upload-loading" v-loading="uploadDisabled" element-loading-text="上传中...">
             <HcIcon name="backup" ui="text-5xl mt-4"/>
             <div class="el-upload__text">拖动文件到这里 或 <em>点击这里选择文件</em> 并上传</div>
@@ -106,11 +107,12 @@ const uploadPreview = ({url}) => {
 
 //删除文件
 const delUploadData = async ({id}) => {
-    const {data} = await wbsApi.removeBussFile({ids: id})
-    if(data && data.code === 200) {
-        window.$message?.success('删除成功');
+    const {error, code} = await wbsApi.removeBussFile({ids: id},false)
+    if (!error && code === 200) {
+        window?.$message?.success('删除成功')
         return true
     } else {
+        window.$message?.error('删除失败');
         return false
     }
 }

+ 8 - 4
src/views/data-fill/components/ListItem.vue

@@ -402,10 +402,14 @@ const uploadData = ref({})
 
 //上传被点击
 const uploadClick = (item) => {
-    uploadModal.value = true
-    uploadData.value = getFormDataInit(item.pkeyId + '')
-    //获取文件列表
-    getBussFileList(item.pkeyId + '')
+    if (isStatus.value !== '3') {
+        uploadModal.value = true
+        uploadData.value = getFormDataInit(item.pkeyId + '')
+        //获取文件列表
+        getBussFileList(item.pkeyId + '')
+    } else {
+        window?.$message?.warning('已上报的资料,不允许上传')
+    }
 }
 
 //获取文件列表

+ 10 - 4
src/views/data-fill/components/WbsTree.vue

@@ -73,7 +73,7 @@ const props = defineProps({
     isColor: {
         type: Boolean,
         default: false
-    },
+    }
 })
 
 //变量
@@ -112,6 +112,9 @@ watch(() => [
     idPrefix.value = UserIdPrefix
 })
 
+//事件
+const emit = defineEmits(['menuTap','nodeTap', 'nodeLoading'])
+
 //树形结构异步加载数据
 const defaultExpandedCids = ref([])
 const ElTreeLoadNode = async (node, resolve) => {
@@ -151,6 +154,9 @@ const ElTreeLoadNode = async (node, resolve) => {
         }
         //自动展开
         defaultExpandedCids.value = defaultExpandedArr
+        if (node.level === 0) {
+            emit('nodeLoading')
+        }
         resolve(resData)
         //最后一个,执行点击
         if (props.isAutoClick && clickKey) {
@@ -159,13 +165,13 @@ const ElTreeLoadNode = async (node, resolve) => {
             })
         }
     } else {
+        if (node.level === 0) {
+            emit('nodeLoading')
+        }
         resolve([])
     }
 }
 
-//事件
-const emit = defineEmits(['menuTap','nodeTap'])
-
 //节点被点击
 const ElTreeClick = async (data,node) => {
     if (isAutoKeys.value) {

+ 15 - 3
src/views/data-fill/wbs.vue

@@ -33,7 +33,7 @@
             <HcDrawer :show="isDrawer" :scrollbar="false" actionSize="lg" to-id="wbs-node-tree-card-target">
                 <!--清表列表-->
                 <el-scrollbar ref="ListItemScrollRef">
-                    <ListItem ref="ListItemRef" :datas="ListItemDatas" :status="NodeStatus" :projectId="projectId" :contractId="contractId" :classify="authBtnTabKey" @offsetTop="ListItemOffsetTop" @renew="getTableDataAll"/>
+                    <ListItem ref="ListItemsRef" :datas="ListItemDatas" :status="NodeStatus" :projectId="projectId" :contractId="contractId" :classify="authBtnTabKey" @offsetTop="ListItemOffsetTop" @renew="getTableDataAll"/>
                 </el-scrollbar>
                 <!--底部按钮区域-->
                 <template #action>
@@ -94,7 +94,7 @@
                                     <HcTreeData :datas="searchTreeData" :menus="ElTreeMenu" :isMark="TreeMark" :autoExpandKeys="TreeAutoExpandKeys" isColor @nodeTap="wbsElTreeClick" @menuTap="ElTreeMenuClick"/>
                                 </template>
                                 <template v-else>
-                                    <WbsTree :menus="ElTreeMenu" :isMark="TreeMark" :autoExpandKeys="TreeAutoExpandKeys" :projectId="projectId" :contractId="contractId" isColor @nodeTap="wbsElTreeClick" @menuTap="ElTreeMenuClick"/>
+                                    <WbsTree :menus="ElTreeMenu" :isMark="TreeMark" :autoExpandKeys="TreeAutoExpandKeys" :projectId="projectId" :contractId="contractId" isColor @nodeTap="wbsElTreeClick" @menuTap="ElTreeMenuClick" @nodeLoading="ElTreeNodeLoading"/>
                                 </template>
                             </KeepAlive>
                         </el-scrollbar>
@@ -132,7 +132,7 @@
                         <HcNewSwitch :datas="wbsTypeTab" :keys="wbsTypeTabKey" @change="wbsTypeTabChange"/>
                     </template>
                     <!--清表列表-->
-                    <el-scrollbar ref="ListItemScrollRef">
+                    <el-scrollbar ref="ListItemScrollRef" v-loading="ListItemLoading">
                         <ListItem ref="ListItemRef" :datas="ListItemDatas" :status="NodeStatus" :projectId="projectId" :contractId="contractId" :classify="authBtnTabKey" @offsetTop="ListItemOffsetTop" @renew="getTableDataAll"/>
                     </el-scrollbar>
                     <!--底部按钮区域-->
@@ -358,6 +358,7 @@ watch(() => [
 
 //渲染完成
 onMounted(()=> {
+    treeLoading.value = typeName === 'tree';
     setContractType(contractInfo.value?.contractType)
 })
 
@@ -396,6 +397,7 @@ const wbsTypeTabChange = (item) => {
     wbsTypeTabKey.value = item?.key;
     ListItemDatas.value = []
     isDrawer.value = false;
+    treeLoading.value = typeName === 'tree';
     //路由跳转
     router.push({
         path: useRoutes.path,
@@ -497,6 +499,11 @@ const wbsElTreeClick = ({node, data, keys}) => {
     TreeAutoExpandKeys.value = keys || []
     getTableDataAll()
 }
+//树加载完成
+const ElTreeNodeLoading = () => {
+    treeLoading.value = false
+}
+
 //树菜单被点击
 const ElTreeMenuClick = async ({key,node,data}) => {
     nodeItemInfo.value = node
@@ -975,14 +982,19 @@ const ListItemOffsetTop = (offsetTop) => {
 
 //获取数据列表
 const ListItemDatas = ref([]);
+const ListItemLoading = ref(false);
 const searchNodeAllTable = async () => {
+    ListItemDatas.value = []
     const info = nodeDataInfo.value;
+    ListItemLoading.value = true
     const {error, code, data} = await wbsApi.searchNodeAllTable({
         projectId: projectId.value,
         contractId: contractId.value,
         primaryKeyId: info['contractIdRelation'] ? info['id'] : info['primaryKeyId'],
         type: authBtnTabKey.value
     })
+    //处理数据
+    ListItemLoading.value = false
     if (!error && code === 200) {
         ListItemDatas.value = getArrValue(data)
     } else {

+ 1 - 11
src/views/other-file/image-form.vue

@@ -51,7 +51,7 @@
                                     <el-form-item class="flex-1" :class="fileType === 2?'mr-4':''" prop="shootingUser" label="拍摄者">
                                         <el-input v-model="formValue.shootingUser" placeholder="请输入拍摄者"/>
                                     </el-form-item>
-                                    <el-form-item class="flex-1 ml-4" prop="photoCode" label="拍摄者" v-if="fileType === 2">
+                                    <el-form-item class="flex-1 ml-4" label="照片号" v-if="fileType === 2">
                                         <el-input v-model="formValue.photoCode" placeholder="请输入照片号"/>
                                     </el-form-item>
                                 </div>
@@ -203,16 +203,6 @@ const rules = {
         trigger: "blur",
         message: "请输入拍摄者"
     },
-    photoCode: {
-        required: true,
-        validator(rule, value) {
-            if (!value && fileType === 2) {
-                return new Error("请输入照片号");
-            }
-            return true;
-        },
-        trigger: "blur"
-    },
     shootingTimeStr: {
         required: true,
         trigger: "blur",

+ 1 - 1
src/views/other-file/project-scanning.vue

@@ -491,7 +491,7 @@ const setTableUploadColumn = () => {
             {key:'fileName', name: '文件名称'},
             {key:'fileTime', name: '文件时间'},
             {key:'sheetType', name: '图幅'},
-            {key:'sheetSourceValue', name: '图表来源'},
+            {key:'sheetSource', name: '图表来源'},
             {key:'drawingNo', name: '图号'},
             {key:'citeChangeNumber', name: '引用变更令编号'},
             {key:'isApproval', name: '是否需要审批'},

+ 41 - 13
src/views/user/index.vue

@@ -28,8 +28,8 @@
                     <el-form ref="formUserRef" :model="formUserModel" :rules="formUserRules" size="large" label-position="top">
                         <el-row :gutter="20">
                             <el-col :span="12">
-                                <el-form-item label="用户名称" :prop="basicFormEdit?'real_name':''">
-                                    <el-input v-model="formUserModel.real_name" placeholder="请输入用户名称" :disabled="!basicHight"/>
+                                <el-form-item label="用户名称">
+                                    <el-input v-model="formUserModel.real_name" disabled/>
                                 </el-form-item>
                             </el-col>
                             <el-col :span="12">
@@ -43,8 +43,8 @@
                                 </el-form-item>
                             </el-col>
                             <el-col :span="12">
-                                <el-form-item label="绑定手机">
-                                    <el-input v-model="formUserModel.phone" placeholder="" disabled/>
+                                <el-form-item label="绑定手机" :prop="basicFormEdit?'phone':''">
+                                    <el-input v-model="formUserModel.phone" placeholder="请输入绑定手机" :disabled="!basicHight"/>
                                 </el-form-item>
                             </el-col>
                             <el-col :span="12">
@@ -143,7 +143,7 @@
                 </template>
                 <HcTable :column="logTableColumn" :datas="logTableData" :loading="logTableLoading">
                     <template #operationContent="{row}">
-                        <div class="text-link" @click="tableOperationContent(row)">{{row?.operationContent}}</div>
+                        <div class="text-link text-cut" @click="tableOperationContent(row)">{{row?.operationContent}}</div>
                     </template>
                 </HcTable>
                 <template #action>
@@ -170,17 +170,23 @@
                 </template>
             </HcCard>
         </div>
+
+        <!--日志内容-->
+        <el-dialog v-model="operationContentModal" title="日志内容" width="38rem" class="hc-modal-border">
+            {{operationContent}}
+        </el-dialog>
+
     </div>
 </template>
 
 <script setup>
 import {ref, onMounted} from "vue";
-import {useRouter, useRoute} from 'vue-router'
 import {useAppStore} from "~src/store";
+import userApi from "~api/userInfo/index"
+import {useRouter, useRoute} from 'vue-router'
 import avatarPng from '~src/assets/images/avatar.png';
 import {getTokenHeader} from '~src/api/request/header';
-import userApi from "~api/userInfo/index"
-import {getIndex,formValidate,getArrValue} from "vue-utils-plus"
+import {getIndex,formValidate,getArrValue,isMobile} from "vue-utils-plus"
 import md5 from 'js-md5';
 
 //初始变量
@@ -300,10 +306,18 @@ const basicHight = ref(false)
 const formUserRef = ref(null)
 const formUserModel = ref(userInfo.value)
 const formUserRules = {
-    real_name: {
+    phone: {
         required: true,
-        trigger: "blur",
-        message: "请输入用户名称"
+        validator: (rule, value, callback) => {
+            if (!value) {
+                callback(new Error('请输入手机号'))
+            } else if (!isMobile(value)) {
+                callback(new Error('手机号码格式错误'))
+            } else {
+                callback()
+            }
+        },
+        trigger: "blur"
     },
 }
 //获取用户信息
@@ -351,11 +365,16 @@ const saveUserInfoData = async () => {
     if (res) {
         const form = formUserModel.value
         saveUserLoading.value = true
-        const { error, code } = await userApi.updateUserInfo({realName: form?.real_name, id: form?.user_id})
+        const { error, code } = await userApi.updateUserInfo({
+            //realName: form?.real_name,
+            phone: form?.phone,
+            id: form['user_id']
+        })
         if (!error && code === 200) {
             saveUserLoading.value = false
             window?.$message?.success('保存成功')
-            userInfo.value.real_name = form?.real_name
+            //userInfo.value.real_name = form?.real_name
+            userInfo.value.phone = form?.phone
             useAppState.setUserInfo(userInfo.value)
         } else {
             saveUserLoading.value = false
@@ -575,6 +594,15 @@ const getLogTableData = async () => {
     }
 }
 
+//查看日志内容
+const operationContentModal = ref(false)
+const operationContent = ref('')
+const tableOperationContent = (row) => {
+    operationContent.value = row['operationContent'] ?? ''
+    operationContentModal.value = true
+}
+
+
 //个人和全部切换
 const userTypeKey = ref('1')
 const userTypeTab = ref([{key:'1',  name: '个人'}, {key:'2', name: '全部'}]);