zhouwx
2 天以前 9e4ea4987852902539e91ec438150c1deaa89742
src/views/build/conpanyFunctionConsult/digitalFileDep/project/projectFile/index.vue
@@ -22,6 +22,26 @@
            />
          </el-select>
        </el-form-item>
        <el-form-item style="margin-left: 15px" label="项目名称:">
          <el-select v-model="data.queryParams.itemId"
                     filterable
                     placeholder="请选择"
                     clearable style="width: 100%"
                     @change="changePro"
                    >
            <el-option
                v-for="item in data.projectList"
                :key="item.id"
                :label="item.itemName"
                :value="item.id">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item style="margin-left: 15px">
          <el-button  type="primary" @click="query">查询</el-button>
          <el-button  type="primary" plain @click="reset">重置</el-button>
        </el-form-item>
        <el-form-item>
          <el-button
              style="margin-left: 15px"
@@ -67,6 +87,7 @@
          <el-table style="margin:15px 0;width: 100%" :data="state.form.dataList" :border="true" >
            <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
            <el-table-column label="目录" prop="catalogueName" align="center" width="130"  :show-overflow-tooltip="true" />
            <el-table-column label="项目名称" prop="itemName" align="center" width="130"  :show-overflow-tooltip="true" />
            <el-table-column label="文件编号" prop="number" align="center"  />
            <el-table-column label="文件名称" prop="fileNameSimple" align="center"  />
            <el-table-column label="文件" prop="fileName" align="center" >
@@ -113,7 +134,7 @@
import axios from "axios";
import TEditor from "@/components/Tinymce/Tinymce.vue";
import {renderAsync} from "docx-preview";
import {delProductFile, getProductFilePage} from "@/api/selfProblems/productFile";
import {delProductFile, getProductFilePage, getProductSet} from "@/api/selfProblems/productFile";
import {generateWordDocument} from "@/utils/exportWord";
const { proxy } = getCurrentInstance();
@@ -128,9 +149,12 @@
  queryParams: {
    type: 3,
    companyId: null,
    itemId: null,
  },
  companyList: [],
  projectList: [],
  isAdmin: false,
  userId: null,
  defaultProps: {
    children: 'children',
    label: 'name',
@@ -154,6 +178,8 @@
  const userInfo = JSON.parse(Cookies.get('userInfo'))
  console.log("userInfo",userInfo)
  data.isAdmin = userInfo.userType === 0;
  data.userId = userInfo.id
  if(data.isAdmin){
    await getCompanyList()
    data.queryParams.companyId = data.companyList[0].id
@@ -163,6 +189,7 @@
    data.queryParams.companyId = userInfo.companyId
    state.form.companyId = userInfo.companyId
  }
  await getProjectList()
  await getList();
  if(data.treeData.length >0){
    // state.form.catalogueId = data.treeData[0].id
@@ -171,7 +198,24 @@
  }
})
const getProjectList = async () => {
  const param = {
    companyId: data.queryParams.companyId,
    userId: data.isAdmin ? null : data.userId
  }
  const res = await getProductSet(param);
  if(res.code === 200){
    data.projectList = res.data
    // if(res.data && res.data.length >0 ){
    //   data.queryParams.itemId = res.data[0].id
    // }
  }else{
    ElMessage.warning(res.message)
  }
}
const getList = async () => {
  data.treeData = [];
  loading.value = true;
@@ -263,15 +307,23 @@
      state.form.companyId = item.id
    }
  })
  await getList()
  if(data.treeData.length >0 ){
    // state.form.catalogueId = data.treeData[0].id
    // currentSelectedKey.value = state.form.catalogueId
    await getFileList()
  }else {
    state.form.dataList = []
  }
  data.projectList = []
  data.queryParams.itemId = null
  await getProjectList()
  // await getList()
  // if(data.treeData.length >0 ){
  //   // state.form.catalogueId = data.treeData[0].id
  //   // currentSelectedKey.value = state.form.catalogueId
  //   await getFileList()
  // }else {
  //   state.form.dataList = []
  // }
}
const changePro = () => {
  state.form.id = ''
  state.form.catalogueId = null
}
const handleNodeClick = async (val) => {
@@ -318,11 +370,21 @@
  }
}
const openDataDialog = (type, value) => {
  if(type =='edit'){
    state.form.catalogueId = value.catalogueId
  }
  if(!state.form.catalogueId){
    ElMessage.warning('请先选择左侧目录!')
    return
  }
  dialogRef.value.openDialog(type, value, state.form.companyId,state.form.catalogueId);
  dialogRef.value.openDialog(type, value, state.form.companyId,state.form.catalogueId,data.userId);
  nextTick(() => {
    if(!currentSelectedKey.value){
      state.form.catalogueId = null
    }
  })
}
const openRecordDialog = (type, value) => {
  if(!state.form.catalogueId){
@@ -392,23 +454,47 @@
}
const reset = async () => {
  data.queryParams = {
    companyId: '',
    companyId: data.isAdmin ? null : data.queryParams.companyId,
    pageNum: 1,
    pageSize: 10,
    itemId: null,
  }
  state.form.id = ''
  state.form.catalogueId = null
  data.companyList = [];
  data.treeData = []
  if(data.isAdmin){
    await  getCompanyList()
    data.queryParams.companyId = data.companyList[0].id
    data.queryParams.companyName = data.companyList[0].name
    state.form.companyId = data.companyList[0].id
  }
  await getProjectList();
  await getList();
  await  getCompanyList()
  data.queryParams.companyId = data.companyList[0].id
  data.queryParams.companyName = data.companyList[0].name
  state.form.companyId = data.companyList[0].id
  if(data.treeData.length >0 ){
    await getFileList()
  }else {
    state.form.dataList = []
  }
}
const query = async () => {
  await getList()
  if(data.treeData.length >0 ){
    await getFileList()
  }else {
    state.form.dataList = []
  }
}
const getFileList = async () => {
  const queryParams = {
    companyId: state.form.companyId,
    catalogueId: state.form.catalogueId,
    type: 2
    type: 2,
    itemId: data.queryParams.itemId
  }
  const res = await getProductFilePage(queryParams)
  if (res.code == 200) {
@@ -534,6 +620,8 @@
    }
  })
  const caralogList = idGroupToTree(dataList)
  const itemList = idGroupToTree(data.projectList)
  table.tableList = caralogList.map((item,index) => {
    return {
      ...item,
@@ -565,6 +653,7 @@
    children: items
  }));
}
</script>
<style scoped lang="scss">