祖安之光
2025-11-13 2405410a2df3178ebacdc241522fa9aaf28f4a34
src/views/work/documentManage/docDistributeRetrieve/components/editDialog.vue
@@ -9,7 +9,7 @@
        :close-on-click-modal="false"
    >
      <el-form :model="state.form" size="default" ref="superRef" :rules="state.formRules" label-width="150px" >
        <el-form-item v-if="state.isAdmin" label="企业:" prop="companyId">
        <el-form-item v-if="state.isAdmin" label="单位:" prop="companyId">
          <el-select v-model="state.form.companyId" placeholder="请选择" :disabled="state.title =='查看'" clearable @change="getDeptList">
            <el-option
                v-for="item in state.companyList"
@@ -37,15 +37,30 @@
          </el-table-column>
          <el-table-column label="文件名称" prop="fileName" align="center">
            <template #default="scope">
              <el-input
                  v-model.trim="scope.row.fileName"
                  size="large"
                  type="textarea"
                  style="width: 100%;"
<!--              <el-input-->
<!--                  v-model.trim="scope.row.fileName"-->
<!--                  size="large"-->
<!--                  type="textarea"-->
<!--                  style="width: 100%;"-->
<!--                  clearable-->
<!--                  :readonly="state.title =='查看'"-->
<!--              >-->
<!--              </el-input>-->
              <el-select
                  clearable
                  :readonly="state.title =='查看'"
                  v-model="scope.row.fileName"
                  :disabled="state.title =='查看'"
                  filterable
                  placeholder="选择文件"
                  style="width: 100%"
              >
              </el-input>
                <el-option
                    v-for="item in state.fileNameList"
                    :key="item.fileName"
                    :label="item.fileName"
                    :value="item.fileName"
                />
              </el-select>
            </template>
          </el-table-column>
          <el-table-column label="编号" prop="number" align="center">
@@ -64,15 +79,30 @@
          <el-table-column label="发放记录" align="center">
            <el-table-column label="部门" prop="distributionDeptName" align="center">
              <template #default="scope">
                <el-input
                    v-model.trim="scope.row.distributionDeptName"
                    size="large"
                    type="textarea"
                    style="width: 100%;"
<!--                <el-input-->
<!--                    v-model.trim="scope.row.distributionDeptName"-->
<!--                    size="large"-->
<!--                    type="textarea"-->
<!--                    style="width: 100%;"-->
<!--                    clearable-->
<!--                    :readonly="state.title =='查看'"-->
<!--                >-->
<!--                </el-input>-->
                <el-select
                    clearable
                    :readonly="state.title =='查看'"
                    v-model="scope.row.distributionDeptName"
                    :disabled="state.title =='查看'"
                    filterable
                    placeholder="选择部门"
                    style="width: 100%"
                >
                </el-input>
                  <el-option
                      v-for="item in state.deptList"
                      :key="item.deptName"
                      :label="item.deptName"
                      :value="item.deptName"
                  />
                </el-select>
              </template>
            </el-table-column>
            <el-table-column label="签收" prop="distributionSign" align="center">
@@ -116,15 +146,30 @@
          <el-table-column label="回收记录" align="center">
            <el-table-column label="部门" prop="collectionDeptName" align="center">
              <template #default="scope">
                <el-input
                    v-model.trim="scope.row.collectionDeptName"
                    size="large"
                    type="textarea"
                    style="width: 100%;"
<!--                <el-input-->
<!--                    v-model.trim="scope.row.collectionDeptName"-->
<!--                    size="large"-->
<!--                    type="textarea"-->
<!--                    style="width: 100%;"-->
<!--                    clearable-->
<!--                    :readonly="state.title =='查看'"-->
<!--                >-->
<!--                </el-input>-->
                <el-select
                    clearable
                    :readonly="state.title =='查看'"
                    v-model="scope.row.collectionDeptName"
                    :disabled="state.title =='查看'"
                    filterable
                    placeholder="选择部门"
                    style="width: 100%"
                >
                </el-input>
                  <el-option
                      v-for="item in state.deptList"
                      :key="item.deptName"
                      :label="item.deptName"
                      :value="item.deptName"
                  />
                </el-select>
              </template>
            </el-table-column>
            <el-table-column label="签回" prop="collectionSign" align="center">
@@ -229,7 +274,10 @@
} from "@/api/infrastructureMng/ledger";
import {listUser} from "@/api/system/user";
import {getEmployeeRecords} from "@/api/onlineEducation/user";
import {getDocDistributeCollectDetail, saveDocDistributeCollect} from "@/api/documentManage";
import {getDepart, getSysClause} from "@/api/orgStructure/depart";
import {getStandardQuality, getStandardTemp} from "@/api/standardSys/standardSys";
const emit = defineEmits(["getList"]);
const dialogVisible = ref(false)
@@ -262,7 +310,9 @@
  },
  isAdmin: false,
  companyList: [],
  userList: []
  userList: [],
  deptList: [],
  fileNameList: []
})
onMounted(() => {
@@ -274,12 +324,63 @@
    state.companyList = companyList
  }
  await getUserList(companyId)
  await getDepartList(companyId)
  await getFileList(companyId)
  state.title = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看'
  state.form.companyId = companyId
  if(state.title == '编辑'||state.title == '查看'){
    await getInfo(value.id)
  }
  dialogVisible.value = true
}
const getFileList = async (companyId) => {
  let fileList1 = []
  let fileList2 = []
  const res1 = await getStandardQuality({
    pageNum: 1,
    pageSize: 999,
    companyId: companyId,
  })
  if(res1.code == 200){
    fileList1 = res1.data.data.map(item=>{
      return {
        ...item,
        fileName: item.qualityName
      }
    }) || []
  }else{
    ElMessage.warning(res1.message)
  }
  const res2 = await getStandardTemp({
    pageNum: 1,
    pageSize: 999,
    companyId: companyId,
    templateType: 4
  })
  if(res2.code == 200){
    fileList2 = res2.data.list.map(item=>{
      return {
        ...item,
        fileName: item.templateName
      }
    }) || []
  }else{
    ElMessage.warning(res2.message)
  }
  state.fileNameList = fileList1.concat(fileList2)
}
const getDepartList = async (companyId)=> {
  const params = {
    companyId: companyId
  }
  const res = await getDepart(params)
  if(res.code == 200){
    state.deptList = res.data
  }else{
    ElMessage.warning(res.message)
  }
}
const addLine = () => {
@@ -358,20 +459,15 @@
const getDeptList = async ()=>{
  state.form.tabulationId = null
  state.form.tabulationName = ''
  state.form.documentDistributionCollectionRecordList = []
  await getUserList(state.form.companyId)
  await getFileList(state.form.companyId)
}
const getUserList = async (companyId)=> {
  const res = await listUser({pageIndex: 1,pageSize: 999,companyId: companyId})
  const res = await getEmployeeRecords({companyId: companyId})
  if(res.code == 200){
    state.userList = res.data.list?res.data.list.map(item=>{
      const user = item.id
      const {id, ...data} = item
      return {
        ...data,
        userId: user
      }
    }):[]
    state.userList = res.data.list?res.data.list:[]
  }else{
    ElMessage.warning(res.message)
  }