duy il y a 7 mois
Parent
commit
46e77d54af

+ 6 - 3
src/views/desk/test-collect/dataMap.vue

@@ -2,7 +2,7 @@
     <hc-drawer v-model="isShow" to-id="hc-main-box" is-close @close="drawerClose">
         <hc-body split :options="splitOptions">
             <template #left>
-                <hc-card scrollbar>
+                <hc-card v-loading="tableLoading" scrollbar>
                     <hc-table-form
                         v-if="tableShow"
                         ref="excelRef"
@@ -63,7 +63,7 @@ const emit = defineEmits(['close'])
 
 
 //页面分割
-const splitOptions = { sizes: [70, 30], snapOffset: 0, minSize: [300, 300] }
+const splitOptions = { sizes: [75, 25], snapOffset: 0, minSize: [300, 300] }
 
 //双向绑定
 const isShow = defineModel('modelValue', {
@@ -111,7 +111,7 @@ getDataApi()
 //表单相关
 const excelRef = ref(null)
 const excelHtml = ref('')
-
+const tableLoading = ref(false)
 
 //获取属性
 const getAttribute = async (dom, key) => {
@@ -177,9 +177,12 @@ const excelClick = async (item) => {
 const clickArr = ref([])
 //获取表单数据
 const getHtmlData = async ()=>{
+    tableLoading.value = true
+
     const { data } = await mainApi.getLinkHtml({
         classId:dataInfo.value.id,
     })
+    tableLoading.value = false
     excelHtml.value = data || ''
  
 }

+ 59 - 14
src/views/system/modules/user/data.vue

@@ -122,7 +122,7 @@
                                 <el-option v-for="(items, indexs) in item.dataInfo" :key="indexs" :label="items.contractName" :value="items.id">
                                     <div class="hc-flex" @click.stop="userContractClick(items, index)">
                                         <div class="name flex-1 text-truncate">{{ items.contractName }}</div>
-                                        <div class="del ml-10px text-red" @click.stop="delContractClick(items, index)">删除</div>
+                                        <div v-if="rowInfo.id" class="del ml-10px text-red" @click.stop="delContractClick(items)">删除</div>
                                     </div>
                                 </el-option>
                             </el-select>
@@ -131,7 +131,7 @@
                             <el-input v-model="item.userRoleName" disabled />
                         </el-col>
                         <el-col :span="4">
-                            <el-button type="danger" @click="delRelatedProject(item)">确定删除</el-button>
+                            <el-button type="danger" @click="delRelatedProject(item, index)">确定删除</el-button>
                         </el-col>
                     </el-row>
                 </div>
@@ -147,7 +147,7 @@
 <script setup>
 import { ref, watch } from 'vue'
 import { getDictionaryData } from '~uti/tools'
-import { formValidate, getArrValue, getObjValue, isNullES, isPhone } from 'js-fast-way'
+import { arrKeyValue, deepClone, formValidate, getArrValue, getObjValue, isNullES, isPhone } from 'js-fast-way'
 import tenantApi from '~api/system/tenant'
 import projectApi from '~api/project/project'
 import contractApi from '~api/project/contract'
@@ -191,7 +191,11 @@ const getDataApi = () => {
     getUserTypeData()
     getProjectDataList()
     getRoleDataList()
-    if (isNullES(id)) return
+    if (isNullES(id)) {
+        relatedProjectForm.value = [{ projectId: '', contractId: '', roleId: '', dataInfo: [] }]
+        formUserType.value = []
+        return
+    }
     formModel.value = { ...info, password: null }
     //分割为数组
     formUserType.value = isNullES(userType) ? [] : userType.split(',').map((item) => {
@@ -288,18 +292,25 @@ const userContractClick = ({ id, roleType, roleName }, index) => {
 
 //已配置的合同段删除
 const delContractClick = async ({ id }) => {
-    const { isRes } = await mainApi.removeUsersByIds(id)
-    if (!isRes) return
-    window.$message.success('删除成功')
-    await getProjectContractList()
+        const { isRes } = await mainApi.removeUsersByIds(id)
+        if (!isRes) return
+        window.$message.success('删除成功')
+        await getProjectContractList()
+    
+    
 }
 
 //删除参建项目
-const delRelatedProject = async ({ userContractId }) => {
-    const { isRes } = await mainApi.removeUserProjectInfoAndRoleById(userContractId)
+const delRelatedProject = async ({ userContractId }, index) => {
+    if (isNullES(rowInfo.value.id)) {
+        userProjectContract.value.splice(index, 1)
+    } else {
+        const { isRes } = await mainApi.removeUserProjectInfoAndRoleById(userContractId)
     if (!isRes) return
     window.$message.success('删除成功')
     await getProjectContractList()
+    }
+
 }
 
 //职能描述相关数据
@@ -326,7 +337,7 @@ const getRoleDataList = async () => {
 }
 
 //职能描述,添加表单
-const relatedProjectForm = ref({ projectId: '', contractId: '', roleId: '' })
+const relatedProjectForm = ref({ projectId: '', contractId: '', roleId: '', dataInfo: [] })
 
 //项目选择
 const projectChange = () => {
@@ -343,7 +354,9 @@ const projectClear = () => {
 
 //添加项目合同段
 const addRelatedProject = async () => {
-    const form = relatedProjectForm.value
+    let form = deepClone (relatedProjectForm.value)
+
+    form.dataInfo = []
     if (isNullES(form.projectId)) {
         window.$message.warning('请先选择项目')
     } else if (isNullES(form.contractId)) {
@@ -351,13 +364,33 @@ const addRelatedProject = async () => {
     } else if (isNullES(form.roleId)) {
         window.$message.warning('请先选择角色类型')
     } else {
-        const { id } = formModel.value
+if (isNullES(rowInfo.value.id)) {
+
+   
+    form.projectName = arrKeyValue(projectList.value, 'id', 'projectName', form.projectId)
+    form.userRoleName = arrKeyValue(roleList.value, 'roleId', 'roleName', form.roleId)
+    form.contractName = arrKeyValue(contractList.value, 'id', 'contractName', form.contractId)
+    form.userContractId = form.contractId
+    form.dataInfo.push({
+                contractName:form.contractName,
+                roleId:form.roleId,
+                roleName:form.userRoleName,
+                roleType:form.roleType,
+                id:form.userContractId,
+                contractId:form.contractId,
+                projectId:form.projectId,
+            })
+    userProjectContract.value.push(form)
+} else {
+    const { id } = formModel.value
         form.userId = id
         const { isRes } = await mainApi.saveUserInfoByProjectTow([form])
         if (!isRes) return
         window.$message.success('添加成功')
-        relatedProjectForm.value = {}
+        relatedProjectForm.value = { projectId: '', contractId: '', roleId: '', dataInfo: [] }
         getProjectContractList().then()
+}
+    
     }
 }
 
@@ -454,6 +487,18 @@ const dialogSubmit = async () => {
     }
     submitLoading.value = true
     const form = formModel.value
+    const list = userProjectContract.value[0]?.dataInfo || []
+    let arr = []
+    list.forEach(item=>{
+        arr.push({
+            projectId: item.projectId,
+            contractId: item.id,
+            roleId: item.roleId,
+        })
+    })
+    form.projectAndUserList = arr
+    // form.projectAndUserList = []
+
     let res = {}
     if (isNullES(form.id)) {
         res = await mainApi.add(form)

+ 1 - 1
src/views/system/notice.vue

@@ -123,7 +123,7 @@
                     <el-input v-model="generalFormModel.pushRemark" type="textarea" />
                 </el-form-item>
                 <el-form-item label="发布配置:" prop="pushDateTime">
-                    <el-date-picker v-model="generalFormModel.pushDateTime" type="datetime" placeholder="选择日期时间" :picker-options="pickerOptions" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" />
+                    <el-date-picker v-model="generalFormModel.pushDateTime" type="datetime" placeholder="选择日期时间" :picker-options="pickerOptions" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" />
                 </el-form-item>
                 <el-form-item label="停留时间:" prop="msgShowTime">
                     <el-select v-model="generalFormModel.msgShowTime" clearable filterable style="width: 190px;">