zhouwx
5 小时以前 c5f4bef2a867c3da79555a95b60a7c4d5c295f0e
src/views/work/marketingManagement/contractManagement/contractChange/index.vue
@@ -8,9 +8,10 @@
              plain
              icon="Plus"
              @click="openDialog('add',{})"
              v-hasPermi="['contractChange:add']"
          >新增</el-button>
        </el-form-item>
        <el-form-item label="企业名称:" v-if="data.isAdmin" style="margin-left: 20px">
        <el-form-item label="单位名称:" v-if="data.isAdmin" style="margin-left: 20px">
          <el-select v-model="data.queryParams.companyId" placeholder="请选择" filterable clearable>
            <el-option
                v-for="item in data.companyList"
@@ -20,7 +21,27 @@
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item>
        <el-form-item label="评审状态:" style="margin-left: 20px">
          <el-select v-model="data.queryParams.status" placeholder="请选择" filterable clearable>
            <el-option
                v-for="item in data.stateList"
                :key="item.id"
                :label="item.name"
                :value="item.id">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="评审类型:"  style="margin-left: 20px">
          <el-select v-model="data.queryParams.type" placeholder="请选择" filterable clearable>
            <el-option
                v-for="item in data.typeList"
                :key="item.id"
                :label="item.name"
                :value="item.id">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item >
          <el-button type="primary" style="margin-left: 30px" @click="searchClick">查询</el-button>
          <el-button plain @click="reset">重置</el-button>
        </el-form-item>
@@ -36,19 +57,19 @@
    <el-table v-loading="loading" :data="dataList" :border="true"  @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" />
      <el-table-column type="index" label="序号" width="80" align="center" />
      <el-table-column label="合同编号" prop="num" align="center" />
      <el-table-column label="合同名称" prop="num" align="center" />
      <el-table-column label="签订日期" prop="num" align="center" />
      <el-table-column label="评审类型" prop="num" align="center" >
      <el-table-column label="合同编号" prop="number" align="center" />
      <el-table-column label="合同名称" prop="contractName" align="center" />
      <el-table-column label="签订日期" prop="signDate" align="center" />
      <el-table-column label="评审类型" prop="type" align="center" >
        <template #default="scope">
          <span>{{scope.row.type == 1 ?'评审':scope.row.type == 2 ?'变更':''}}</span>
        </template>
      </el-table-column>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160">
        <template #default="scope">
          <el-button link type="primary"  @click="openDialog('review',scope.row)" >查看</el-button>
          <el-button link type="primary"  @click="openDialog('edit',scope.row)" >编辑</el-button>
          <el-button link type="danger"  @click="handleDelete(scope.row)" >删除</el-button>
          <el-button link type="primary"  @click="openDialog('edit',scope.row)" v-hasPermi="['contractChange:edit']">编辑</el-button>
          <el-button link type="danger"  @click="handleDelete(scope.row)" v-hasPermi="['contractChange:del']">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
@@ -77,6 +98,7 @@
import {generateWordDocument} from "@/utils/exportWord";
import {delTable, getTable} from "@/api/qualityObjectives/table";
import {delNeedDiscren, getNeedDiscren} from "@/api/need/need";
import {delContractReview, getContractReview} from "@/api/contractChange";
const { proxy } = getCurrentInstance();
const loading = ref(false);
const noticeRef = ref();
@@ -88,12 +110,32 @@
    pageNum: 1,
    pageSize: 10,
    companyId: null,
    year: '',
    type: ''
    status:null,
    type:null
  },
  companyList: [],
  isAdmin: false,
  dialogVisible: false,
  stateList:[
    {
      id: 0,
      name:'待评审'
    },
    {
      id: 1,
      name:'已评审'
    },
  ],
  typeList:[
    {
      id: 1,
      name:'合同评审'
    },
    {
      id: 2,
      name:'合同变更'
    },
  ],
});
const dataList = ref([]);
const total = ref(0);
@@ -115,16 +157,15 @@
  }
});
const getList = async () => {
  // loading.value = true;
  // const res = await getNeedDiscren(data.queryParams);
  // if(res.code === 200){
  //   dataList.value = res.data.list
  //   total.value = res.data.total
  // }else{
  //   ElMessage.warning(res.message)
  // }
  // loading.value = false;
  dataList.value = [{}]
  loading.value = true;
  const res = await getContractReview(data.queryParams);
  if(res.code === 200){
    dataList.value = res.data.list
    total.value = res.data.total
  }else{
    ElMessage.warning(res.message)
  }
  loading.value = false;
}
const searchClick = () => {
@@ -167,6 +208,8 @@
      companyId: '',
      pageNum: 1,
      pageSize: 10,
      status:null,
      type:null
    }
    choosedData.value = []
    data.companyList = [];
@@ -176,6 +219,8 @@
      companyId: data.queryParams.companyId,
      pageNum: 1,
      pageSize: 10,
      status:null,
      type:null
    }
  }
  getList();
@@ -188,48 +233,21 @@
    startGeneration()
  }
}
const templatePath = ref('/contractChangeExample.docx')
const templatePath = ref()
const startGeneration = async () => {
  const data = JSON.parse(JSON.stringify(choosedData.value))
  data.forEach(item => {
    item.expectContents = [
      {
        name: '张三',
        expectContentMesses: [
          {
            need: 'xxx',
            personName: 'x',
            visit:true,
            network: true,
            other: false
          },
          {
            need: '22',
            personName: '2',
            visit:false,
            network: false,
            other: true
          },
        ]
      }
    ]
    item.tableData = item.expectContents.map((i,index) => {
      return{
        ...i,
        expectContentMesses: i.expectContentMesses.map((q,qindex) => {
          return{
            ...q,
            first: qindex == 0,
            num: index+1,
          }
        })
    const msg = item.type == 1 ? '评审' : '变更'
    templatePath.value = item.type == 1 ?  '/contractReviewExample.docx' : '/contractChangeExample.docx'
    item.contractReviewRequires = item.contractReviewRequires.map((item,index) => {
      return {
        ...item,
        num: index+1,
        remark: item.remark ? item.remark : ' '
      }
    })
    console.log('xxx',item.tableData)
    try {
      generateWordDocument(templatePath.value, item, item.companyName + `_合同评审变更表.docx`);
      generateWordDocument(templatePath.value, item, item.contractName + `_合同${msg}表.docx`);
    } catch (error){
      ElMessage({
        type: 'warning',
@@ -251,7 +269,7 @@
        type: 'warning',
      })
      .then( async() => {
        const res = await delNeedDiscren(val.id);
        const res = await delContractReview(val.id);
        if(res.code === 200){
          ElMessage({
            type: 'success',