zhouwx
2025-11-11 be57c60a2b1ce03ebdd264176149c52870c0b760
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,7 @@
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item>
        <el-form-item  v-if="data.isAdmin">
          <el-button type="primary" style="margin-left: 30px" @click="searchClick">查询</el-button>
          <el-button plain @click="reset">重置</el-button>
        </el-form-item>
@@ -36,19 +37,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 +78,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();
@@ -115,16 +117,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 = () => {
@@ -188,37 +189,16 @@
    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) => {
    const msg = item.type == 1 ? '评审' : '变更'
    templatePath.value = item.type == 1 ?  '/contractReviewExample.docx' : '/contractChangeExample.docx'
    item.reviewMesses = item.reviewMesses.map((i,index) => {
      return{
        ...i,
        expectContentMesses: i.expectContentMesses.map((q,qindex) => {
        contractReviewMessbs: i.contractReviewMessbs.map((q,qindex) => {
          return{
            ...q,
            first: qindex == 0,
@@ -227,9 +207,15 @@
        })
      }
    })
    console.log('xxx',item.tableData)
    item.contractReviewRequires = item.contractReviewRequires.map((item,index) => {
      return {
        ...item,
        num: index+1,
        remark: item.remark ? item.remark : ' '
      }
    })
    try {
      generateWordDocument(templatePath.value, item, item.companyName + `_合同评审变更表.docx`);
      generateWordDocument(templatePath.value, item, item.contractName + `_合同${msg}表.docx`);
    } catch (error){
      ElMessage({
        type: 'warning',
@@ -251,7 +237,7 @@
        type: 'warning',
      })
      .then( async() => {
        const res = await delNeedDiscren(val.id);
        const res = await delContractReview(val.id);
        if(res.code === 200){
          ElMessage({
            type: 'success',