| | |
| | | @keyup.enter="handleQuery"
|
| | | />
|
| | | </el-form-item>
|
| | | <el-form-item label="制定机构">
|
| | | <el-tree-select
|
| | | v-model="queryParams.applyOrgId"
|
| | | :data="deptOptions"
|
| | | :props="{ value: 'id', label: 'label', children: 'children' }"
|
| | | value-key="id"
|
| | | placeholder="请选择制定计划的机构"
|
| | | check-strictly
|
| | | style="width: 200px"
|
| | | />
|
| | | </el-form-item>
|
| | | <el-form-item label="执法时间" style="width: 290px">
|
| | | <el-date-picker
|
| | | v-model="dateRange"
|
| | |
| | | label="统一社会信用代码"
|
| | | width="180"
|
| | | ></el-table-column>
|
| | | <el-table-column
|
| | | prop="enforceContent"
|
| | | label="检查内容"
|
| | | width="180"
|
| | | ></el-table-column>
|
| | | <el-table-column
|
| | | prop="applyDeptNames"
|
| | | label="执行科室"
|
| | | width="180"
|
| | | ></el-table-column>
|
| | | <el-table-column prop="enforceType" label="检查方式" width="180">
|
| | | <template #default="scope">{{
|
| | | methodToText(scope.row.enforceType)
|
| | | }}</template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="planFrequency" label="计划频次" width="180">
|
| | | <template #default="scope">{{ frequencyToText(scope.row) }} </template>
|
| | | </el-table-column>
|
| | |
| | | width="180"
|
| | | ></el-table-column>
|
| | | <el-table-column prop="orderStatus" label="状态" width="180">
|
| | | <!-- <template #default="scope">{{
|
| | | statusToText(scope.row.checkStatus)
|
| | | }}</template> -->
|
| | | <template #default="scope">{{
|
| | | statusToText(scope.row.status)
|
| | | }}</template>
|
| | | </el-table-column>
|
| | | <el-table-column
|
| | | label="操作"
|
| | |
| | | width="180"
|
| | | >
|
| | | <template #default="scope">
|
| | | <el-link type="info" @click="handleView(scope.row)">查看</el-link>
|
| | | <el-link type="info" @click="handleView(scope.row.id)">查看</el-link>
|
| | | <el-divider direction="vertical" />
|
| | | <el-link type="primary" @click="handleAdd(scope.row)">编辑</el-link>
|
| | | <el-divider direction="vertical" />
|
| | | <el-link type="error" @click="handleDelete(scope.row)">删除</el-link>
|
| | | <el-link type="danger" @click="handleDelete(scope.row)">删除</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | </el-table>
|
| | |
| | | append-to-body
|
| | | >
|
| | | <el-form ref="deptRef" :model="form" :rules="rules" label-width="140px">
|
| | | <div class="sub-title">基本信息</div>
|
| | | <el-row :gutter="20">
|
| | | <el-col :span="24">
|
| | | <el-col :span="12">
|
| | | <el-form-item label="计划名称" prop="enforceReason">
|
| | | <el-input
|
| | | :disabled="form.id"
|
| | | v-model="form.enforceReason"
|
| | | placeholder="请输入计划名称"
|
| | | />
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | </el-row>
|
| | | <el-row :gutter="20">
|
| | | <el-col :span="12">
|
| | | <el-form-item label="制定计划的机构" prop="applyOrgId">
|
| | | <el-form-item label="牵头单位" prop="leadUnitId">
|
| | | <el-tree-select
|
| | | v-model="form.applyOrgId"
|
| | | :disabled="form.id"
|
| | | v-model="form.leadUnitId"
|
| | | :data="deptOptions"
|
| | | :props="{ value: 'id', label: 'label', children: 'children' }"
|
| | | value-key="id"
|
| | | placeholder="请选择制定计划的机构"
|
| | | placeholder="请选择牵头单位"
|
| | | check-strictly
|
| | | :default-expanded-keys="[form.applyOrgId]"
|
| | | :default-checked-keys="[form.applyOrgId]"
|
| | | :default-expanded-keys="[form.leadUnitId]"
|
| | | :default-checked-keys="[form.leadUnitId]"
|
| | | @node-click="changeTreeHandler"
|
| | | />
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | <el-col :span="12">
|
| | | <el-form-item label="执行科室" prop="applyDeptIds">
|
| | | <el-select
|
| | | v-model="selectOffices"
|
| | | multiple
|
| | | collapse-tags
|
| | | collapse-tags-tooltip
|
| | | :max-collapse-tags="1"
|
| | | placeholder="请选择执行科室"
|
| | | style="width: 100%"
|
| | | @change="handleSelectOffices"
|
| | | >
|
| | | <el-option
|
| | | v-for="(obj, index) in officeList"
|
| | | :key="index"
|
| | | :label="obj.deptName"
|
| | | :value="obj.deptId"
|
| | | />
|
| | | </el-select>
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | </el-row>
|
| | | <el-row :gutter="20" v-if="!form.orderId">
|
| | | <el-row :gutter="20" v-if="!form.id">
|
| | | <el-col :span="24">
|
| | | <el-form-item label="被检查的对象" prop="checkdIds">
|
| | | <el-form-item label="被检对象" prop="checkdIds">
|
| | | <el-button type="primary" @click="openFirmSelect"
|
| | | >选择企业</el-button
|
| | | >
|
| | |
| | | </el-row>
|
| | | <el-row :gutter="20" v-if="form.checkdIds">
|
| | | <el-col :span="24">
|
| | | <el-form-item label="被检查对象信息">
|
| | | <el-form-item label="被检对象信息">
|
| | | <el-table
|
| | | :data="checkedList"
|
| | | max-height="200px"
|
| | | max-height="100px"
|
| | | style="width: 100%"
|
| | | >
|
| | | <el-table-column prop="companyName" label="企业名称" />
|
| | |
| | | </el-row>
|
| | | <el-row :gutter="20">
|
| | | <el-col :span="12">
|
| | | <el-form-item label="检查方式" prop="enforceType">
|
| | | <el-form-item label="检查频次" prop="planFrequency">
|
| | | <el-input
|
| | | v-model="form.planFrequency"
|
| | | :disabled="form.id"
|
| | | placeholder="请输入频次"
|
| | | >
|
| | | <template #append>
|
| | | <el-select
|
| | | :disabled="form.id"
|
| | | v-model="form.planFrequencyUnit"
|
| | | placeholder="单位"
|
| | | style="width: 80px"
|
| | | >
|
| | | <el-option
|
| | | v-for="(obj, index) in frequency"
|
| | | :key="index"
|
| | | :label="obj.label"
|
| | | :value="obj.value"
|
| | | />
|
| | | </el-select> </template
|
| | | ></el-input>
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | <el-col :span="12">
|
| | | <el-form-item label="计划时间" prop="planMonth">
|
| | | <el-date-picker
|
| | | :disabled="form.id"
|
| | | v-model="selectMonth"
|
| | | type="months"
|
| | | format="YYYY-MM"
|
| | | value-format="YYYY-MM"
|
| | | placeholder="请选择计划时间"
|
| | | @change="changeMonth"
|
| | | />
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | </el-row>
|
| | | <el-row :gutter="20">
|
| | | <el-col :span="12">
|
| | | <el-form-item label="检查类型" prop="enforceType">
|
| | | <el-select
|
| | | :disabled="form.id"
|
| | | v-model="form.enforceType"
|
| | | placeholder="请选择检查方式"
|
| | | placeholder="请选择检查类型"
|
| | | style="width: 100%"
|
| | | >
|
| | | <el-option
|
| | |
| | | </el-select>
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | <el-col :span="12">
|
| | | <el-form-item label="所属行业" prop="industry">
|
| | | <el-select
|
| | | v-model="form.industry"
|
| | | placeholder="请选择所属行业"
|
| | | style="width: 100%"
|
| | | >
|
| | | <el-option
|
| | | v-for="(obj, index) in industry_type"
|
| | | :key="index"
|
| | | :label="obj.label"
|
| | | :value="obj.key"
|
| | | </el-row>
|
| | |
|
| | | <div class="sub-title">
|
| | | <div class="title-word">主体信息</div>
|
| | | <div class="add-btn">
|
| | | <el-button type="primary" @click="addMainList">新增</el-button>
|
| | | </div>
|
| | | </div>
|
| | | <el-row :gutter="20">
|
| | | <el-table :data="mainList" max-height="200px" style="width: 100%">
|
| | | <el-table-column prop="applyOrgId" align="center" label="检查单位">
|
| | | <template #default="scope">
|
| | | <div v-if="!scope.row.isEdit">{{ scope.row.applyOrgName }}</div>
|
| | | <el-tree-select
|
| | | v-else
|
| | | v-model="scope.row.applyOrgId"
|
| | | :data="deptOptions"
|
| | | :props="{ value: 'id', label: 'label', children: 'children' }"
|
| | | value-key="id"
|
| | | placeholder="请选择制定计划的机构"
|
| | | check-strictly
|
| | | :default-expanded-keys="[scope.row.applyOrgId]"
|
| | | :default-checked-keys="[scope.row.applyOrgId]"
|
| | | @node-click="
|
| | | (data, node, item) =>
|
| | | changeMainTreeHandler(data, node, item, scope.$index)
|
| | | "
|
| | | />
|
| | | </el-select>
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | </el-row>
|
| | | <el-row :gutter="20">
|
| | | <el-col :span="24">
|
| | | <el-form-item label="检查内容" prop="enforceContent">
|
| | | <el-input
|
| | | v-model="form.enforceContent"
|
| | | type="textarea"
|
| | | placeholder="请输入检查内容"
|
| | | />
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | </el-row>
|
| | | <el-row :gutter="20">
|
| | | <el-col :span="12">
|
| | | <el-form-item label="计划频次" prop="planFrequency">
|
| | | <el-input v-model="form.planFrequency" placeholder="请输入频次">
|
| | | <template #append>
|
| | | <el-select
|
| | | v-model="form.planFrequencyUnit"
|
| | | placeholder="单位"
|
| | | style="width: 80px"
|
| | | >
|
| | | <el-option
|
| | | v-for="(obj, index) in frequency"
|
| | | :key="index"
|
| | | :label="obj.label"
|
| | | :value="obj.key"
|
| | | />
|
| | | </el-select> </template
|
| | | ></el-input>
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | <el-col :span="12">
|
| | | <el-form-item label="计划月份" prop="planMonth">
|
| | | <el-date-picker
|
| | | v-model="selectMonth"
|
| | | type="months"
|
| | | format="YYYY-MM"
|
| | | value-format="YYYY-MM"
|
| | | placeholder="请选择计划月份"
|
| | | @change="changeMonth"
|
| | | />
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column
|
| | | prop="applyDeptNames"
|
| | | align="center"
|
| | | label="执行科室"
|
| | | >
|
| | | <template #default="scope">
|
| | | <div v-if="!scope.row.isEdit">
|
| | | {{ scope.row.applyDeptNames }}
|
| | | </div>
|
| | | <el-select
|
| | | v-else
|
| | | v-model="scope.row.selectList"
|
| | | multiple
|
| | | collapse-tags
|
| | | collapse-tags-tooltip
|
| | | :max-collapse-tags="1"
|
| | | placeholder="请选择执行科室"
|
| | | style="width: 100%"
|
| | | @change="
|
| | | (value) => {
|
| | | handleSelectOffices(value, scope.$index);
|
| | | }
|
| | | "
|
| | | >
|
| | | <el-option
|
| | | v-for="(obj, index) in scope.row.officeList"
|
| | | :key="index"
|
| | | :label="obj.deptName"
|
| | | :value="obj.deptId"
|
| | | />
|
| | | </el-select>
|
| | | </template>
|
| | | </el-table-column>
|
| | |
|
| | | <el-table-column
|
| | | prop="enforceContent"
|
| | | show-overflow-tooltip
|
| | | label="检查内容"
|
| | | align="center"
|
| | | >
|
| | | <template #default="scope">
|
| | | <div v-if="!scope.row.isEdit">
|
| | | {{ scope.row.enforceContent }}
|
| | | </div>
|
| | | <el-input
|
| | | v-else
|
| | | type="textarea"
|
| | | :rows="1"
|
| | | v-model="scope.row.enforceContent"
|
| | | placeholder="请输入检查内容"
|
| | | />
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column label="操作" align="center" width="100">
|
| | | <template #default="scope">
|
| | | <el-link
|
| | | style="margin-right: 10px"
|
| | | type="primary"
|
| | | v-if="scope.row.isEdit"
|
| | | @click="saveRowInfo(scope.row, scope.$index)"
|
| | | >保存</el-link
|
| | | >
|
| | | <el-link
|
| | | style="margin-right: 10px"
|
| | | type="primary"
|
| | | v-else
|
| | | @click="editMainList(scope.row, scope.$index)"
|
| | | >编辑</el-link
|
| | | >
|
| | | <el-link
|
| | | style="margin-right: 10px"
|
| | | type="danger"
|
| | | @click="delRowInfo(scope.$index)"
|
| | | >删除</el-link
|
| | | >
|
| | | </template>
|
| | | </el-table-column>
|
| | | </el-table>
|
| | | </el-row>
|
| | | </el-form>
|
| | | <template #footer>
|
| | |
| | | <!-- 计划详细 -->
|
| | | <el-dialog title="计划详情" v-model="planOpen" width="700px" append-to-body>
|
| | | <el-form label-width="140px">
|
| | | <div class="sub-title">基本信息</div>
|
| | | <el-row>
|
| | | <el-col :span="12">
|
| | | <el-form-item label="计划编号:">{{
|
| | | planDetail.orderNo
|
| | | planDetail.planNo
|
| | | }}</el-form-item>
|
| | | </el-col>
|
| | | <el-col :span="12">
|
| | | <el-form-item label="计划名称:">{{
|
| | | <el-form-item label="检查计划名称:">{{
|
| | | planDetail.enforceReason
|
| | | }}</el-form-item>
|
| | | </el-col>
|
| | | <el-col :span="12">
|
| | | <el-form-item label="制定计划的机构:">{{
|
| | | planDetail.applyOrgName
|
| | | <el-form-item label="牵头单位:">{{
|
| | | planDetail.leadUnitName
|
| | | }}</el-form-item>
|
| | | </el-col>
|
| | | <el-col :span="12">
|
| | |
| | | }}</el-form-item>
|
| | | </el-col>
|
| | | <el-col :span="12">
|
| | | <el-form-item label="检查方式:">{{
|
| | | methodToText(planDetail.enforceType)
|
| | | }}</el-form-item>
|
| | | </el-col>
|
| | | <el-col :span="12">
|
| | | <el-form-item label="执行科室:">{{
|
| | | planDetail.applyDeptNames
|
| | | }}</el-form-item>
|
| | | </el-col>
|
| | | <el-col :span="24">
|
| | | <el-form-item label="检查内容:">{{
|
| | | planDetail.enforceContent
|
| | | }}</el-form-item>
|
| | | <el-form-item label="计划频次:">
|
| | | {{ frequencyToText(planDetail) }}
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | <el-col :span="12">
|
| | | <el-form-item label="计划月份:">{{
|
| | |
| | | }}</el-form-item>
|
| | | </el-col>
|
| | | <el-col :span="12">
|
| | | <el-form-item label="计划频次:">
|
| | | {{ frequencyToText(planDetail) }}
|
| | | <el-form-item label="检查类型:">
|
| | | {{ methodToText(planDetail.enforceType) }}
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | <el-col :span="12">
|
| | | <!-- <el-form-item label="状态:">{{
|
| | | statusToText(planDetail.checkStatus)
|
| | | }}</el-form-item> -->
|
| | | <el-form-item label="状态:">
|
| | | {{ statusToText(planDetail.status) }}
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | </el-row>
|
| | | <div class="sub-title">主体信息</div>
|
| | | <el-row>
|
| | | <el-table
|
| | | :data="planDetailList"
|
| | | max-height="200px"
|
| | | style="width: 100%"
|
| | | >
|
| | | <el-table-column
|
| | | prop="applyOrgName"
|
| | | align="center"
|
| | | label="检查单位"
|
| | | />
|
| | | <el-table-column
|
| | | prop="applyDeptNames"
|
| | | align="center"
|
| | | label="执行科室"
|
| | | />
|
| | | <el-table-column
|
| | | align="center"
|
| | | prop="enforceContent"
|
| | | show-overflow-tooltip
|
| | | label="检查内容"
|
| | | />
|
| | | </el-table>
|
| | | </el-row>
|
| | | </el-form>
|
| | | <template #footer>
|
| | |
| | | @click="
|
| | | planOpen = false;
|
| | | planDetail = {};
|
| | | planDetailList = [];
|
| | | "
|
| | | >关 闭</el-button
|
| | | >
|
| | |
| | | import { getToken } from "@/utils/auth";
|
| | | import {
|
| | | listOrder,
|
| | | // addManage,
|
| | | // getManage,
|
| | | // updateManage,
|
| | | // delManage,
|
| | | getOrder,
|
| | | delOrder,
|
| | | addOrder,
|
| | | updateOrder,
|
| | | exportTemplate,
|
| | | // exportManage,
|
| | | // getOrgId,
|
| | | } from "@/api/system/comprehensive";
|
| | | import { listCompany } from "@/api/system/company/company";
|
| | | import { deptTreeSelect } from "@/api/system/user";
|
| | | import { listDept } from "@/api/system/dept";
|
| | | // import { download } from '@/utils/request'; // 下载文件
|
| | | import { download as downloadHttp } from "@/utils/request";
|
| | | import { generateCartesianArray } from "@/utils/arrayUtil";
|
| | | const { proxy } = getCurrentInstance();
|
| | | const { sys_normal_disable } = proxy.useDict("sys_normal_disable");
|
| | | const { frequency, industry_type, enforce_type } = proxy.useDictPer(
|
| | | const { frequency, enforce_type } = proxy.useDictPer(
|
| | | "frequency",
|
| | | "industry_type",
|
| | | "enforce_type"
|
| | | );
|
| | |
|
| | |
| | | const refreshTable = ref(true);
|
| | | const planOpen = ref(false);
|
| | | const planDetail = ref({});
|
| | | const planDetailList = ref([]);
|
| | | const mainList = ref([]);
|
| | | const dateRange = ref([]);
|
| | | const selectOpen = ref(false);
|
| | | const firmList = ref([]);
|
| | |
| | | const data = reactive({
|
| | | form: {
|
| | | enforceReason: "", // 计划名称
|
| | | applyOrgId: "", // 制定机构id
|
| | | applyOrgName: "", // 制定机构
|
| | | applyDeptIds: "", // 执行科室
|
| | | applyDeptNames: "", // 执行科室名称
|
| | | companyName: "", // 被检查对象
|
| | | companyId: "", // 被检查对象id
|
| | | leadUnitId: "", // 制定机构id
|
| | | leadUnitName: "", // 制定机构
|
| | | checkdIds: "", // 被检查对象id
|
| | | companyName: "", // 被检查对象名称
|
| | | companyCode: "", // 统一社会信用代码
|
| | | industry: "", // 所属行业
|
| | | enforceType: "", // 检查方式
|
| | | enforceContent: "", // 检查内容
|
| | | planFrequency: "", // 计划频次
|
| | | planFrequencyUnit: "1", // 计划频次单位
|
| | | planFrequencyUnit: 119, // 计划频次单位
|
| | | planMonth: "", // 计划月份
|
| | | },
|
| | | queryParams: {
|
| | | companyName: "",
|
| | | enforceReason: "",
|
| | | applyOrgId: "",
|
| | | leadUnitId: "",
|
| | | planMonthStart: "", // 计划开始月份
|
| | | planMonthEnd: "", // 计划结束月份
|
| | | pageNum: 1,
|
| | | pageSize: 10,
|
| | | },
|
| | | rules: {
|
| | | orderNo: [{ required: true, message: "计划编号不能为空", trigger: "blur" }],
|
| | | planNo: [{ required: true, message: "计划编号不能为空", trigger: "blur" }],
|
| | | enforceReason: [
|
| | | { required: true, message: "计划名称不能为空", trigger: "blur" },
|
| | | ],
|
| | | applyOrgId: [
|
| | | { required: true, message: "制定计划的机构不能为空", trigger: "blur" },
|
| | | leadUnitId: [
|
| | | { required: true, message: "牵头单位不能为空", trigger: "blur" },
|
| | | ],
|
| | | checkdIds: [
|
| | | { required: true, message: "被检查对象不能为空", trigger: "blur" },
|
| | |
| | | ],
|
| | | companyCode: [
|
| | | { required: true, message: "统一社会信用代码不能为空", trigger: "blur" },
|
| | | ],
|
| | | industry: [
|
| | | { required: true, message: "所属行业不能为空", trigger: "blur" },
|
| | | ],
|
| | | enforceContent: [
|
| | | { required: true, message: "检查内容不能为空", trigger: "blur" },
|
| | | ],
|
| | | applyDeptIds: [
|
| | | { required: true, message: "执行科室不能为空", trigger: "blur" },
|
| | | ],
|
| | | planFrequency: [
|
| | | { required: true, message: "计划频次不能为空", trigger: "blur" },
|
| | |
| | | });
|
| | |
|
| | | // 获取科室列表
|
| | | const getOfficeList = () => {
|
| | | const getOfficeList = (orgId, index) => {
|
| | | listDept({
|
| | | pageNum: 1,
|
| | | pageSize: 1000,
|
| | | parentId: form.value.applyOrgId,
|
| | | parentId: orgId,
|
| | | }).then((response) => {
|
| | | officeList.value = response.data;
|
| | | mainList.value[index].officeList = response.data;
|
| | | });
|
| | | };
|
| | |
|
| | |
| | | form.value.planMonth = value.join(",");
|
| | | };
|
| | |
|
| | | // 机构选择
|
| | | // 牵头单位选择
|
| | | const changeTreeHandler = (e) => {
|
| | | form.value.applyOrgId = e.id;
|
| | | form.value.applyOrgName = e.label;
|
| | | form.value.leadUnitId = e.id;
|
| | | form.value.leadUnitName = e.label;
|
| | | selectOffices.value = [];
|
| | | form.value.applyDeptIds = "";
|
| | | form.value.applyDeptNames = "";
|
| | | if (e.id) {
|
| | | getOfficeList();
|
| | | };
|
| | |
|
| | | // 检查单位选择
|
| | | const changeMainTreeHandler = (data, item, node, index) => {
|
| | | mainList.value[index].applyOrgId = data.id;
|
| | | mainList.value[index].applyOrgName = data.label;
|
| | | mainList.value[index].applyDeptIds = "";
|
| | | mainList.value[index].applyDeptNames = "";
|
| | | mainList.value[index].selectList = [];
|
| | | mainList.value[index].officeList = [];
|
| | | if (data.id) {
|
| | | getOfficeList(data.id, index);
|
| | | }
|
| | | };
|
| | |
|
| | | // 科室选择
|
| | | const handleSelectOffices = (value) => {
|
| | | form.value.applyDeptNames = value
|
| | | const handleSelectOffices = (value, index) => {
|
| | | mainList.value[index].applyDeptIds = value.join(",");
|
| | | mainList.value[index].applyDeptNames = value
|
| | | .map((item) => {
|
| | | return officeList.value.find((obj) => obj.deptId === item).deptName;
|
| | | return mainList.value[index].officeList.find((obj) => obj.deptId === item)
|
| | | .deptName;
|
| | | })
|
| | | .join(",");
|
| | | form.value.applyDeptIds = value.join(",");
|
| | | };
|
| | |
|
| | | /*** 计划导入参数 */
|
| | |
| | | // 设置上传的请求头部
|
| | | headers: { Authorization: "Bearer " + getToken() },
|
| | | // 上传的地址
|
| | | url: import.meta.env.VITE_APP_BASE_API + "/comprehensive/enforce/order/importData",
|
| | | url:
|
| | | import.meta.env.VITE_APP_BASE_API +
|
| | | "/comprehensive/enforce/order/importData",
|
| | | });
|
| | | /**文件上传中处理 */
|
| | | const handleFileUploadProgress = (event, file, fileList) => {
|
| | |
| | | function reset() {
|
| | | form.value = {
|
| | | enforceReason: "", // 计划名称
|
| | | applyOrgId: "", // 制定机构id
|
| | | applyOrgName: "", // 制定机构
|
| | | applyDeptIds: "", // 执行科室id
|
| | | applyDeptNames: "", // 执行科室名称
|
| | | leadUnitId: "", // 制定机构id
|
| | | leadUnitName: "", // 制定机构
|
| | | checkdIds: "", // 被检查对象id
|
| | | companyName: "", // 被检查对象名称
|
| | | companyCode: "", // 统一社会信用代码
|
| | | enforceType: "", // 检查方式
|
| | | industry: "", // 所属行业
|
| | | enforceContent: "", // 检查内容
|
| | | planFrequency: "", // 计划频次
|
| | | planFrequencyUnit: "1", // 计划频次单位
|
| | | planFrequencyUnit: 119, // 计划频次单位
|
| | | planMonth: "", // 计划月份
|
| | | orderType: 1,
|
| | | };
|
| | | mainList.value = [];
|
| | | selectOffices.value = [];
|
| | | selectMonth.value = [];
|
| | | checkedList.value = [];
|
| | |
| | | orderType: 1,
|
| | | companyName: "",
|
| | | enforceReason: "",
|
| | | applyOrgId: "",
|
| | | leadUnitId: "",
|
| | | planMonthStart: "", // 计划开始月份
|
| | | planMonthEnd: "", // 计划结束月份
|
| | | pageNum: 1,
|
| | |
| | | handleQuery();
|
| | | }
|
| | | function getDetails(id) {
|
| | | getManage(id).then((response) => {
|
| | | form.value = JSON.parse(JSON.stringify(response.data));
|
| | | form.value.planFrequencyUnit = form.value.planFrequencyUnit.toString();
|
| | | getOrder(id).then((response) => {
|
| | | form.value = JSON.parse(JSON.stringify(response.data.info));
|
| | | const list = JSON.parse(JSON.stringify(response.data.list));
|
| | | mainList.value = list.map((obj) => {
|
| | | return {
|
| | | ...obj,
|
| | | selectList: [],
|
| | | officeList: [],
|
| | | isEdit: false,
|
| | | };
|
| | | });
|
| | | form.value.planFrequencyUnit = Number(form.value.planFrequencyUnit);
|
| | | form.value.enforceType = Number(form.value.enforceType);
|
| | | form.value.leadUnitId = Number(form.value.leadUnitId);
|
| | | selectMonth.value = form.value.planMonth.split(",");
|
| | | selectOffices.value = form.value.applyDeptIds
|
| | | .split(",")
|
| | | .map((item) => Number(item));
|
| | |
|
| | | getOfficeList();
|
| | | open.value = true;
|
| | | });
|
| | | }
|
| | |
|
| | | /** 详细按钮操作 */
|
| | | function handleView(row) {
|
| | | planOpen.value = true;
|
| | | planDetail.value = row;
|
| | | planOpen.value = true;
|
| | | /** 详情按钮操作 */
|
| | | function handleView(id) {
|
| | | getOrder(id).then((response) => {
|
| | | console.log(response);
|
| | | planDetail.value = response.data.info;
|
| | | planDetailList.value = response.data.list;
|
| | | planOpen.value = true;
|
| | | });
|
| | | }
|
| | |
|
| | | /** 新增按钮操作 */
|
| | | function handleAdd(row) {
|
| | | if (row) {
|
| | | title.value = "编辑计划";
|
| | | getDetails(row.orderId);
|
| | | getDetails(row.id);
|
| | | } else {
|
| | | title.value = "添加计划";
|
| | | open.value = true;
|
| | | getUserOrgId();
|
| | | mainList.value = [
|
| | | {
|
| | | applyOrgId: "",
|
| | | applyOrgName: "",
|
| | | applyDeptIds: "",
|
| | | applyDeptNames: "",
|
| | | enforceContent: "",
|
| | | selectList: [],
|
| | | officeList: [],
|
| | | isEdit: true,
|
| | | },
|
| | | ];
|
| | | console.log(mainList.value);
|
| | | }
|
| | | getFirmList();
|
| | | }
|
| | |
|
| | | // 新增主体内容
|
| | | function addMainList() {
|
| | | if (mainList.value.length) {
|
| | | const lastObj = JSON.parse(
|
| | | JSON.stringify(mainList.value[mainList.value.length - 1])
|
| | | );
|
| | | if (lastObj.isEdit) {
|
| | | return proxy.$modal.msgError("请先保存当前信息");
|
| | | } else {
|
| | | delete lastObj.isEdit;
|
| | | const checkList = [
|
| | | "applyOrgId",
|
| | | "applyOrgName",
|
| | | "applyDeptIds",
|
| | | "applyDeptNames",
|
| | | "enforceContent",
|
| | | ];
|
| | | console.log(lastObj);
|
| | | const check = checkList.every((key) => Boolean(lastObj[key]));
|
| | | if (!check) return proxy.$modal.msgError("请完善当前信息");
|
| | | }
|
| | | }
|
| | | mainList.value.push({
|
| | | applyOrgId: "",
|
| | | applyOrgName: "",
|
| | | applyDeptIds: "",
|
| | | applyDeptNames: "",
|
| | | enforceContent: "",
|
| | | selectList: [],
|
| | | officeList: [],
|
| | | isEdit: true,
|
| | | });
|
| | | }
|
| | |
|
| | | // 编辑行信息
|
| | | function editMainList(row, index) {
|
| | | if (!form.value.id) {
|
| | | mainList.value[index].isEdit = true;
|
| | | } else {
|
| | | if (row.orderStatus > 2) return proxy.$modal.msgError("已执法不能编辑");
|
| | | mainList.value[index].selectList = row.applyDeptIds
|
| | | .split(",")
|
| | | .map((item) => Number(item));
|
| | | getOfficeList(row.applyOrgId, index);
|
| | | mainList.value[index].isEdit = true;
|
| | | }
|
| | | }
|
| | |
|
| | | // 保存行信息
|
| | | function saveRowInfo(row, index) {
|
| | | const rowInfo = JSON.parse(JSON.stringify(row));
|
| | | console.log(rowInfo);
|
| | | delete rowInfo.isEdit;
|
| | | const checkList = [
|
| | | "applyOrgId",
|
| | | "applyOrgName",
|
| | | "applyDeptIds",
|
| | | "applyDeptNames",
|
| | | "enforceContent",
|
| | | ];
|
| | | const check = checkList.every((key) => Boolean(rowInfo[key]));
|
| | | if (!check) return proxy.$modal.msgError("请完善当前信息");
|
| | | mainList.value[index].isEdit = false;
|
| | | }
|
| | |
|
| | | // 删除行信息
|
| | | function delRowInfo(index) {
|
| | | console.log(mainList.value, index);
|
| | | mainList.value.splice(index, 1);
|
| | | }
|
| | |
|
| | | /** 提交按钮 */
|
| | | function submitForm() {
|
| | | proxy.$refs["deptRef"].validate((valid) => {
|
| | | if (valid) {
|
| | | if (form.value.orderId != undefined) {
|
| | | updateManage(form.value).then((response) => {
|
| | | if (form.value.id) {
|
| | | if (mainList.value.some((obj) => obj.isEdit)) {
|
| | | proxy.$modal.msgError("请完善主体信息");
|
| | | return;
|
| | | }
|
| | | updateOrder({
|
| | | info: form.value,
|
| | | list: mainList.value,
|
| | | }).then((response) => {
|
| | | proxy.$modal.msgSuccess("修改成功");
|
| | | open.value = false;
|
| | | getList();
|
| | | reset();
|
| | | });
|
| | | } else {
|
| | | checkedList.value.forEach((item, index) => {
|
| | | const submitForm = { ...form.value };
|
| | | submitForm.companyId = item.companyId;
|
| | | submitForm.companyName = item.companyName;
|
| | | submitForm.companyCode = item.companyCode;
|
| | | addManage(submitForm).then((response) => {
|
| | | if (index === checkedList.value.length - 1) {
|
| | | proxy.$modal.msgSuccess("新增成功");
|
| | | open.value = false;
|
| | | getList();
|
| | | reset();
|
| | | }
|
| | | if (mainList.value.some((obj) => obj.isEdit)) {
|
| | | proxy.$modal.msgError("请完善主体信息");
|
| | | return;
|
| | | }
|
| | | // 准备提交数据:根据checkdIds和planMonth生成笛卡尔积数组
|
| | | const submitDataArray = [];
|
| | | // 遍历每个选中的企业
|
| | | for (const company of checkedList.value) {
|
| | | // 遍历每个选中的月份
|
| | | for (const month of selectMonth.value) {
|
| | | // 创建包含当前企业和月份信息的表单数据
|
| | | const companyForm = {
|
| | | ...JSON.parse(JSON.stringify(form.value)),
|
| | | companyId: company.companyId,
|
| | | companyName: company.companyName,
|
| | | companyCode: company.companyCode,
|
| | | planMonth: month,
|
| | | checkdIds: company.companyId,
|
| | | };
|
| | | // 为每个企业-月份组合生成对应的mainList数据
|
| | | const formData = companyForm;
|
| | | submitDataArray.push(formData);
|
| | | }
|
| | | }
|
| | | addOrder({
|
| | | companyList: submitDataArray,
|
| | | orgList: mainList.value,
|
| | | })
|
| | | .then((response) => {
|
| | | proxy.$modal.msgSuccess("新增成功");
|
| | | open.value = false;
|
| | | getList();
|
| | | reset();
|
| | | })
|
| | | .catch(() => {
|
| | | proxy.$modal.msgError("新增失败");
|
| | | });
|
| | | });
|
| | | }
|
| | | }
|
| | | });
|
| | |
| | | proxy.$modal
|
| | | .confirm("是否确认删除该数据?")
|
| | | .then(function () {
|
| | | return delManage(row.orderId);
|
| | | return delOrder(row.id);
|
| | | })
|
| | | .then(() => {
|
| | | getList();
|
| | |
| | | }
|
| | |
|
| | | function frequencyToText(data) {
|
| | | console.log(data.planFrequencyUnit);
|
| | | if (!data.planFrequencyUnit) {
|
| | | return "";
|
| | | }
|
| | |
| | |
|
| | | function statusToText(status) {
|
| | | return statusOptions.value.find((item) => item.value == status).label;
|
| | | }
|
| | |
|
| | | function getUserOrgId() {
|
| | | getOrgId().then((response) => {
|
| | | form.value.applyOrgId = Number(response.data.orgId) || "";
|
| | | form.value.applyDeptIds = response.data.deptId || "";
|
| | | if (form.value.applyDeptIds) {
|
| | | selectOffices.value = form.value.applyDeptIds
|
| | | .split(",")
|
| | | .map((item) => Number(item));
|
| | | }
|
| | | if (form.value.applyOrgId) {
|
| | | getOfficeList();
|
| | | }
|
| | | });
|
| | | }
|
| | |
|
| | | getList();
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .sub-title {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: space-between;
|
| | | padding: 10px 10px;
|
| | | // height: 40px;
|
| | | // line-height: 40px;
|
| | | font-size: 16px;
|
| | | font-weight: 700;
|
| | | color: #999;
|
| | | background-color: #ebf5ff;
|
| | | box-sizing: border-box;
|
| | | margin-bottom: 10px;
|
| | | }
|
| | | </style>
|