Lijy 5 miesięcy temu
rodzic
commit
3c248b4116

+ 3 - 2
fhKeeper/formulahousekeeper/customerBuler-crm/src/components/translationComponent/personnelSearch/personnelSearch.vue

@@ -14,6 +14,7 @@ const props = defineProps({
   placeholder: { type: String, required: false, default: () => '请选择' },
   disabled: { type: Boolean, required: false, default: false },
   options: { type: Array as () => optionsType, required: false, default: () => [] },
+  clearable: { type: Boolean, required: false, default: true },
   width: { type: String, required: false, default: () => '100%' },
 });
 const emit = defineEmits<Emits>();
@@ -146,7 +147,7 @@ onMounted(() => {
 <el-option v-for="item in personnelArray" :key="item.value" :label="item.label" :value="item.value"></el-option>
 </el-select> -->
   <el-select-v2 v-model="selectedValue" :ref="`selectRef${timeRef}`" :multiple="multiple" :size="size"
-    :loading="selectLoading" :placeholder="placeholder" :disabled="disabled" clearable filterable collapse-tags
+    :loading="selectLoading" :placeholder="placeholder" :disabled="disabled" :clearable="clearable" filterable collapse-tags
     :style="`width: ${width}`" :options="personnelArray"
     :class="`custom-select ${!controlTranslation.visibleFlag ? 'setUpInput' : ''}`" @change="updateValue"
     @visible-change="visibleChange" :filter-method="filterMethod">
@@ -159,7 +160,7 @@ onMounted(() => {
             {{ placeholder }}
           </template>
           <template v-else>
-            <span style="color: #303133;">
+            <span style="color: #606266;">
               <TextTranslation translationTypes="userName" :translationValue="getSelectedLabel"></TextTranslation>
             </span>
           </template>

+ 4 - 3
fhKeeper/formulahousekeeper/customerBuler-crm/src/components/translationComponent/treeSelect/treeSelect.vue

@@ -42,7 +42,7 @@ const treeSelectRef = ref();
 const searchCriteria = ref<string[]>([])
 
 const getSelectedLabel = computed(() => {
-  console.log(treeSelectVal.value)
+  console.log(treeSelectVal.value, '<==== 执行')
   if (!props.multiple) {
     return treeSelectVal.value ? findLabelById(treeSelectArray.value, treeSelectVal.value) : props.placeholder
   }
@@ -158,6 +158,7 @@ function updateValue(val: any) { // 值改变的时候触发
 }
 
 onMounted(() => {
+  console.log(treeSelectVal.value, '<==== 数据')
   if (departmentList.value.length == 0) {
     if (props.options.length > 0) {
       treeSelectArray.value = props.options
@@ -174,7 +175,7 @@ onMounted(() => {
   <el-tree-select v-model="treeSelectVal" ref="treeSelectRef" :data="treeSelectArray" :size="size"
     :loading="selectLoading" :clearable="clearable" :placeholder="placeholder" :show-checkbox="anyLevel"
     :multiple="multiple" node-key="id" :render-after-expand="true" :check-strictly="checkStrictly" filterable
-    collapse-tags :style="`width: ${width}`" :class="`custom-select ${!visibleFlag ? 'setUpInput' : ''}`"
+    collapse-tags :style="`width: ${width}`" :default-expanded-keys="(!multiple && checkStrictly) ? [treeSelectVal] : Array.isArray(treeSelectVal) ? [...treeSelectVal] : [treeSelectVal]" :class="`custom-select ${!visibleFlag ? 'setUpInput' : ''}`"
     @change="updateValue" @visible-change="visibleChange" :filter-method="filterMethod"
     :filter-node-method="filterNode">
     <!-- 单选 -->
@@ -185,7 +186,7 @@ onMounted(() => {
             {{ placeholder }}
           </template>
           <template v-else>
-            <span style="color: #303133;">
+            <span style="color: #606266;">
               <TextTranslation translationTypes="departmentName" :translationValue="getSelectedLabel"></TextTranslation>
             </span>
           </template>

+ 1 - 1
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/analysis/index.vue

@@ -209,7 +209,7 @@ watchEffect(() => {
           <personnel-search v-model="selectVal" :size="'small'" multiple placeholder="你好世界" @change="selectChange"></personnel-search>
           <personnel-search v-model="selectVals" :size="'small'" placeholder="你好世界" @change="selectChange2"></personnel-search>
           <department-selection v-model="departmentVal" :size="'small'" placeholder="部门选择" @change="selectChange3"></department-selection>
-          <tree-select v-model="treeSelectVals" :size="'small'" multiple placeholder="树形选择"  @change="selectChange4"></tree-select>
+          <tree-select v-model="treeSelectVals" :size="'small'" placeholder="树形选择"  @change="selectChange4"></tree-select>
           <el-select
             ref="select1"
             size="small"

+ 25 - 10
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/team/index.vue

@@ -61,7 +61,7 @@
               <template #default="{ node, data }">
                 <div class="flex justify-between treeContent">
                   <div class="custom-tree-node" @mouseleave="mouseleave(data,$event)" @mouseover="mouseover(data,$event)">
-                    <div class="treeLabel">{{ node.label }}</div>
+                    <div class="treeLabel"><TextTranslation translationTypes="departmentName" :translationValue="node.label"></TextTranslation></div>
                     <div class="treeIcon nodeEle" id="treeIcon" v-if="data.id > 0">
                       <el-link type="primary" :icon="CirclePlus" :underline="false" @click.stop="dialogFromCli('addDeptDialogVisible', data, true)"></el-link>
                       <el-link type="primary" :icon="Delete" :underline="false" style="margin-left: 6px;" @click.stop="deteleDept(data)"></el-link>
@@ -79,10 +79,18 @@
             <el-table ref="multipleTableRef" :data="tableData" v-loading="loadingFrom.tableLoading"
               @selection-change="changeBatch" :style="`width: 100%;height: calc(100vh - 204px);`">
               <el-table-column type="selection" width="55" />
-              <el-table-column label="姓名" property="name" width="150"></el-table-column>
+              <el-table-column label="姓名" property="name" width="150">
+                <template #default="scope">
+                  <TextTranslation translationTypes="userName" :translationValue="scope.row.name"></TextTranslation>
+                </template>
+              </el-table-column>
               <el-table-column label="手机" property="phone"></el-table-column>
               <el-table-column label="工号" property="jobNumber"></el-table-column>
-              <el-table-column label="部门" property="departmentName"></el-table-column>
+              <el-table-column label="部门" property="departmentName">
+                <template #default="scope">
+                  <TextTranslation translationTypes="departmentName" :translationValue="scope.row.departmentName"></TextTranslation>
+                </template>
+              </el-table-column>
               <el-table-column label="角色" property="roleName"></el-table-column>
               <el-table-column label="创建时间" property="createTime"></el-table-column>
               <el-table-column label="操作" width="200" fixed="right">
@@ -147,14 +155,16 @@
             <el-input v-model="deptForm.name" placeholder="请输入部门名称" clearable />
           </el-form-item>
           <el-form-item label="主要负责人">
-            <el-select v-model="deptForm.managerId" placeholder="请选择" style="width: 100%" clearable>
+            <!-- <el-select v-model="deptForm.managerId" placeholder="请选择" style="width: 100%" clearable>
               <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id" />
-            </el-select>
+            </el-select> -->
+            <personnel-search v-model="deptForm.managerId" :size="''" placeholder="请选择"></personnel-search>
           </el-form-item>
           <el-form-item label="其他负责人">
-            <el-select v-model="deptForm.otherManagerIds" placeholder="请选择" style="width: 100%" multiple clearable>
+            <!-- <el-select v-model="deptForm.otherManagerIds" placeholder="请选择" style="width: 100%" multiple clearable>
               <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id" />
-            </el-select>
+            </el-select> -->
+            <personnel-search v-model="deptForm.otherManagerIds" :size="''" multiple placeholder="请选择"></personnel-search>
           </el-form-item>
         </el-form>
       </div>
@@ -253,6 +263,8 @@ import { GET_DATA_LIST, DETELE_DEPT, MOD, GET_USERINFO, GET_ROUTELIST, DEACTIVEU
 import { post, uploadFile } from "@/utils/request";
 import { getFromValue, updateDepTreeData, resetFromValue, confirmAction, downloadFile } from '@/utils/tools'
 
+import personnelSearch from '@/components/translationComponent/personnelSearch/personnelSearch.vue';
+
 // 导入页面
 import AddPersonnelModal from './module/AddPersonnelModal.vue'
 import BatchOperation from './module/BatchOperation.vue'
@@ -429,10 +441,11 @@ function addPersone(item: any) {
     return
   }
   post(GET_USERINFO, { userId: item.id }).then(res => {
-    const { id, name, phone, jobNumber, roleId, departmentCascade, inductionDate } = res.data
+    const { id, name, phone, jobNumber, roleId, departmentCascade, departmentId, inductionDate } = res.data
     let newData = {
-      id, name, phone, jobNumber, roleId, departmentId:
-        departmentCascade && departmentCascade.split(',').map(Number).reverse(),
+      id, name, phone, jobNumber, roleId, 
+      // departmentId: departmentCascade && departmentCascade.split(',').map(Number).reverse(),
+      departmentId: departmentId,
       inductionDate
     }
     personnelFromData.value = newData
@@ -458,6 +471,8 @@ async function personnelModalConfirm(data: any, modelType: string) {
 function createDepartment(formEl: FormInstance | undefined) {
   if (!formEl) return
   let data = getFromValue(deptForm)
+  console.log(data, '<==== 对应的数据')
+  return
   loadingFrom.deptDialogVisibleLoading = true
   post(GET_ADDDEPT, { ...deptForm, otherManagerIds: data.otherManagerIds && data.otherManagerIds.join(',') }).then(res => {
     if (res.code != 'ok') {

+ 23 - 10
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/team/module/AddPersonnelModal.vue

@@ -1,5 +1,6 @@
 <template>
-    <el-dialog v-model="data.addPersonnelDialogVisible" :title="'添加人员'" :show-close="false" width="600" :before-close="handleClose">
+    <el-dialog v-model="data.addPersonnelDialogVisible" :title="'添加人员'" :show-close="false" width="600"
+        :before-close="handleClose">
         <template #header="{ close, titleId, titleClass }">
             <div class="flex justify-between items-center border-b pb-3 dialog-header">
                 <h4 :id="titleId">添加/编辑人员</h4>
@@ -15,7 +16,12 @@
             <el-form ref="personnelRuleFormRef" style="max-width: 500px" :model="personnelFrom" :rules="personnelRules"
                 label-width="120px" size="large" status-icon>
                 <el-form-item label="姓名" prop="name">
-                    <el-input v-model="personnelFrom.name" placeholder="请输入姓名" clearable />
+                    <el-input v-if="userInfo.userNameNeedTranslate == 0" v-model="personnelFrom.name"
+                        placeholder="请输入姓名" clearable />
+                    <div v-if="userInfo.userNameNeedTranslate == 1">
+                        <TextTranslation translationTypes="userName" :translationValue="personnelFrom.name">
+                        </TextTranslation>
+                    </div>
                 </el-form-item>
                 <el-form-item label="电话">
                     <el-input v-model="personnelFrom.phone" placeholder="请输入电话" clearable />
@@ -24,26 +30,33 @@
                     <el-input v-model="personnelFrom.jobNumber" placeholder="请输入工号" clearable />
                 </el-form-item>
                 <el-form-item label="部门">
-                    <el-cascader v-model="personnelFrom.departmentId" :options="data.deptList" placeholder="请选择部门" :props="{ checkStrictly: true }" clearable style="width: 100%" />
+                    <!-- <el-cascader v-model="personnelFrom.departmentId" :options="data.deptList" placeholder="请选择部门" :props="{ checkStrictly: true }" clearable style="width: 100%" /> -->
+                    <tree-select v-model="personnelFrom.departmentId" :size="''" checkStrictly placeholder="请选择部门" :key="personnelFrom.departmentId"></tree-select>
                 </el-form-item>
                 <el-form-item label="角色">
                     <el-select v-model="personnelFrom.roleId" placeholder="请选择角色" size="large">
-                        <el-option v-for="item in data.roleList" :key="item.id" :label="item.rolename" :value="item.id" />
+                        <el-option v-for="item in data.roleList" :key="item.id" :label="item.rolename"
+                            :value="item.id" />
                     </el-select>
                 </el-form-item>
                 <el-form-item label="入职时间">
-                    <el-date-picker v-model="personnelFrom.inductionDate" type="date" placeholder="选择入职时间" value-format="YYYY-MM-DD" style="width: 100%" />
+                    <el-date-picker v-model="personnelFrom.inductionDate" type="date" placeholder="选择入职时间"
+                        value-format="YYYY-MM-DD" style="width: 100%" />
                 </el-form-item>
             </el-form>
-        </div> 
+        </div>
     </el-dialog>
 </template>
 <script setup lang="ts">
 import { ref, watch, reactive } from 'vue'
 import { FormRules, FormInstance } from 'element-plus'
 import { getFromValue, resetFromValue } from '@/utils/tools'
+import { storeToRefs } from 'pinia';
+import { useStore } from '@/store/index'
+import treeSelect from '@/components/translationComponent/treeSelect/treeSelect.vue'
 
 const emit = defineEmits(['closeModal', 'personnelModalConfirm']);
+const { userInfo } = storeToRefs(useStore());
 // 定义类型
 interface Props {
     data: {
@@ -60,7 +73,8 @@ interface personnelFromType { // 类型定义
     phone: string | number,
     jobNumber: string,
     roleId: string | number,
-    departmentId: string[] | number[],
+    // departmentId: string[] | number[],
+    departmentId: string | number,
     inductionDate: string,
 }
 const data = ref<Props['data']>({
@@ -76,7 +90,7 @@ const personnelFrom = ref<personnelFromType>({ // 填写的内容
     phone: '',
     jobNumber: '',
     roleId: '',
-    departmentId: [],
+    departmentId: '',
     inductionDate: '',
 });
 
@@ -92,8 +106,7 @@ const personnelRules = reactive<FormRules<typeof personnelFrom>>({ // 部门表
 function addPersonel(formEl: FormInstance | undefined) {
     if (!formEl) return
     let dataForm = getFromValue(personnelFrom.value)
-    const { departmentId } = dataForm
-    emit('personnelModalConfirm', { ...dataForm, departmentId: departmentId && departmentId[departmentId.length - 1]  }, 'addPersonnelDialogVisible')
+    emit('personnelModalConfirm', { ...dataForm }, 'addPersonnelDialogVisible')
 }
 
 // 监听 Props 的变化