|
@@ -1,965 +0,0 @@
|
|
|
-<template>
|
|
|
- <div>
|
|
|
- <el-dialog :title="title" :visible.sync="showDialog" width="1000px" :close-on-click-modal="false"
|
|
|
- @close="handleClose(false)" :append-to-body="true">
|
|
|
- <el-form :model="form" :rules="rules" ref="reportForm" label-width="120px" v-loading="loading"
|
|
|
- :element-loading-text="load_text" element-loading-spinner="el-icon-loading"
|
|
|
- element-loading-background-color="rgba(0, 0, 0, 0.8)">
|
|
|
- <el-row>
|
|
|
- <el-col :span="12">
|
|
|
- <!-- <el-form-item :label="[3].includes(Number(form.type)) ? '标的产品' : '标的专利'" prop="signPatentNo">
|
|
|
- <el-input v-model="form.signPatentNo" autocomplete="off"
|
|
|
- :placeholder="[3].includes(Number(form.type)) ? '请输入标的产品' : '请输入标的专利'" @change="getPatentNo"></el-input>
|
|
|
- </el-form-item> -->
|
|
|
- <el-form-item v-if="form.reportType == 3" label="标的产品" prop="signPatentNo">
|
|
|
- <el-select style="width:100%" v-model="form.signProjectId" placeholder="请选择产品" filterable remote
|
|
|
- :popper-append-to-body="false" :remote-method="remoteMethodProduct"
|
|
|
- v-SelectLazyLoading="lazyLoadingProduct" :loading="productList.loading">
|
|
|
- <el-option v-for="item in productList.data" :key="item.id" :label="item.name"
|
|
|
- :value="item.id"></el-option>
|
|
|
- </el-select>
|
|
|
- <!-- <el-input v-model="form.signProjectId" autocomplete="off"
|
|
|
- placeholder="请输入标的产品" @change="getPatentNo"></el-input> -->
|
|
|
- </el-form-item>
|
|
|
- <el-form-item v-else label="标的专利" prop="signPatentNo">
|
|
|
- <el-input v-model="form.signPatentNo" autocomplete="off" placeholder="请输入标的专利"
|
|
|
- @change="getPatentNo"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="报告名称" prop="name">
|
|
|
- <el-input v-model="form.name" autocomplete="off" placeholder="请输入报告名称"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-form-item label="是否完成" v-if="!form.id">
|
|
|
- <el-switch v-model="form.status" active-color="#13ce66" inactive-color="#ff4949" @change="changeStatus"
|
|
|
- :active-value="3" :inactive-value="1">
|
|
|
- </el-switch>
|
|
|
- </el-form-item>
|
|
|
- <template v-if="!form.id && form.status == 3">
|
|
|
- <div>
|
|
|
- <el-form-item label="核心结论">
|
|
|
- <el-checkbox-group v-model="form.cronIds">
|
|
|
- <el-checkbox v-for="item in conclusion" :key="item.value" :label="item.value">{{
|
|
|
- item.label }}</el-checkbox>
|
|
|
- <!-- <el-checkbox v-for="item in conclusion" :key="item.value" :label="item.value">{{
|
|
|
- item.label }}</el-checkbox> -->
|
|
|
- </el-checkbox-group>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="结论论述">
|
|
|
- <el-input v-model="form.cronDescription" type="textarea" placeholder="请输入结论论述"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="后续跟进事项" v-if="$permission('/rms/matter')">
|
|
|
- <span v-if="form.followUps"><span v-for="item in form.followUps" :key="item.followUpName"
|
|
|
- style="margin-right:10px">{{ item.followUpName }}</span></span>
|
|
|
- <span>
|
|
|
- <el-popover ref="popover" placement="bottom" @hide="hidePopover" @show="showPopover" trigger="click">
|
|
|
- <div>
|
|
|
- <addMatter :type="matterType" :sign="matterSign" @value="getMatter"></addMatter>
|
|
|
- </div>
|
|
|
- <el-button slot="reference">添加后续事项</el-button>
|
|
|
- </el-popover>
|
|
|
- </span>
|
|
|
- </el-form-item>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- <el-row>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="承担部门" prop="departmentId">
|
|
|
- <mySelectTree style="width:100%" v-model="form.departmentId" :options="departmentList"></mySelectTree>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="负责人" prop="headId">
|
|
|
- <el-select style="width:100%" v-model="form.headId" placeholder="请选择负责人" filterable remote
|
|
|
- :popper-append-to-body="false" :remote-method="remoteMethodPerson" v-SelectLazyLoading="lazyLoadingPerson"
|
|
|
- :loading="personnelList.loading">
|
|
|
- <el-option v-for="item in personnelList.data" :key="item.id" :label="item.name"
|
|
|
- :value="item.id"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-col :span="12">
|
|
|
- <template>
|
|
|
- <div>
|
|
|
- <el-form-item label="委托方" prop="entrustId" v-if="userinfo.tenantType == 1">
|
|
|
- <el-select style="width:100%" v-model="form.entrustId" placeholder="请选择委托方" filterable remote
|
|
|
- :popper-append-to-body="false" :remote-method="remoteMethodClient"
|
|
|
- v-SelectLazyLoading="lazyLoadingClient" :loading="clientObj.loading">
|
|
|
- <el-option v-for="item in clientList" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="委托部门" prop="departmentId" v-else>
|
|
|
- <mySelectTree style="width:100%" v-model="form.departmentId" :options="departmentList"></mySelectTree>
|
|
|
- </el-form-item>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="卷号" prop="volumeNumber">
|
|
|
- <el-input v-model="form.volumeNumber" autocomplete="off" placeholder="请输入卷号"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
-
|
|
|
- <!-- <el-form-item label="应用场景">
|
|
|
- <el-checkbox-group v-model="form.scenarioList">
|
|
|
- <el-checkbox v-for="item in commonData.ENTERPRISE_APPLICATION_SCENARIO" :key="item.value"
|
|
|
- :label="parseInt(item.value)">{{ item.label }}</el-checkbox>
|
|
|
- </el-checkbox-group>
|
|
|
- </el-form-item> -->
|
|
|
- <el-row>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="产品/技术">
|
|
|
- <el-input v-model="form.productOrTech" autocomplete="off" placeholder="请输入产品/技术"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-col :span="form.track ? 12 : 24">
|
|
|
- <el-form-item label="关联报告">
|
|
|
- <el-input v-model="form.associateReportName" autocomplete="off" placeholder="请输入关联报告"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="需要复制的选项" v-show="form.track">
|
|
|
- <el-select v-model="form.copyIds" multiple clearable placeholder="请选择需要复制的选项" :popper-append-to-body="false"
|
|
|
- @change="changeCopyIds">
|
|
|
- <el-option v-for="item in copyList" :key="item.value" :label="item.label"
|
|
|
- :value="item.value"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="事件:">
|
|
|
- <mySelectButton size='large' style="width:100%" @click="addEvent">
|
|
|
- <div style="width:100%">
|
|
|
- <el-select style="width:100%" v-model="form.eventId" @change="changeEvent" filterable remote clearable
|
|
|
- placeholder="请选择" :loading="eventList.loading" v-SelectLazyLoading="loadEvent"
|
|
|
- :remote-method="remoteEvent">
|
|
|
- <el-option v-for="item in eventList.data" :key="item.id" :label="item.name" :value="item.id">
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
- </mySelectButton>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row v-if="show == true">
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="调查类型:" prop="matterIds">
|
|
|
- <el-checkbox-group v-model="form.matterIds">
|
|
|
- <template>
|
|
|
- <el-checkbox v-for="item in dictAssociates" :key="item.id" :label="parseInt(item.id)">
|
|
|
- {{ item.name }}
|
|
|
- </el-checkbox>
|
|
|
- </template>
|
|
|
- </el-checkbox-group>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <template v-if="form.reportType == 7">
|
|
|
- <div>
|
|
|
- <el-row>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="案件编号">
|
|
|
- <el-input v-model="form.caseNumber" autocomplete="off" placeholder="请输入案件编号"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="发文序号">
|
|
|
- <el-input v-model="form.issueNumber" autocomplete="off" placeholder="请输入发文序号"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="发明创造名称">
|
|
|
- <el-input v-model="form.inventionName" autocomplete="off" placeholder="请输入发明创造名称"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="无效宣告请求人">
|
|
|
- <el-input v-model="form.invalidApplication" autocomplete="off" placeholder="请输入无效宣告请求人"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- <el-form-item :label="(!form.id && form.status == 3) ? '上传报告文档' : '上传附件'">
|
|
|
- <myUpload :file-list="form.systemFileList" @on-change="onchangeFile" @on-remove="onRemove"
|
|
|
- @on-preview="onPreview" style="height: 180px;" :autoUpload="true"></myUpload>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="备注" prop="description">
|
|
|
- <el-input type='textarea' v-model="form.description" autocomplete="off" placeholder="请输入备注"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <div slot="footer" v-if="$reportPermission(form.id, [0, 1])">
|
|
|
- <el-button @click="handleClose(false)">取 消</el-button>
|
|
|
- <el-button type="primary" @click="ifNext" v-if="form.reportType == 7 && !form.id">下一步</el-button>
|
|
|
- <el-button type="primary" @click="submit" v-else>确 定</el-button>
|
|
|
- </div>
|
|
|
- </el-dialog>
|
|
|
-
|
|
|
- <!-- 审核弹窗 -->
|
|
|
- <el-dialog title="添加审核任务" :visible.sync="showTask" width="500px" @close="handleCloseTask">
|
|
|
- <el-form :model="taskForm" :rules="TaskRules" ref="TaskForm" label-width="120px" v-loading="loading">
|
|
|
- <el-form-item label="任务名称:" prop="taskName">
|
|
|
- <el-input v-model="taskForm.taskName" type="text" placeholder="输入任务名称" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="审核人:" prop="personnelId">
|
|
|
- <el-select style="width:100%;" ref="select1" v-model="taskForm.personnelId" clearable filterable remote
|
|
|
- :remote-method="remoteMethodPerson" v-SelectLazyLoading="lazyLoadingPerson">
|
|
|
- <el-option v-for="item in personnelList" :key="item.id" :label="item.personnelName" :value="item.id"
|
|
|
- placeholder="请选择审核人"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="完成日期:" prop="endTime">
|
|
|
- <el-date-picker style="width:100%" v-model="taskForm.endTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"
|
|
|
- placeholder="选择日期">
|
|
|
- </el-date-picker>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="审核备注:" prop="description">
|
|
|
- <el-input v-model="taskForm.description" type="textarea" placeholder="输入备注" />
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <span slot="footer" class="dialog-footer">
|
|
|
- <el-button @click="handleCloseTask">取 消</el-button>
|
|
|
- <el-button type="primary" @click="submitTask">确 定</el-button>
|
|
|
- </span>
|
|
|
- </el-dialog>
|
|
|
-
|
|
|
- <!-- 无效应对报告下一步所打开弹窗 -->
|
|
|
- <el-dialog :visible.sync="showEvidenceAndRequest" width="1000px" :close-on-click-modal="false">
|
|
|
- <evidenceAndRequest ref="evidence" :examine="true" :reportId="reportId" @show="showEvidenceAndRequest = false">
|
|
|
- </evidenceAndRequest>
|
|
|
- </el-dialog>
|
|
|
-
|
|
|
- </div>
|
|
|
-</template>
|
|
|
-
|
|
|
-<script>
|
|
|
-import { mapGetters } from 'vuex'
|
|
|
-import evidenceAndRequest from './evidenceAndRequest.vue'
|
|
|
-import addMatter from './addMatter.vue'
|
|
|
-export default {
|
|
|
- components: {
|
|
|
- evidenceAndRequest,
|
|
|
- addMatter,
|
|
|
- },
|
|
|
- props: {},
|
|
|
- data() {
|
|
|
- const isExist = (rule, value, callback) => {
|
|
|
- if (!this.form.signPatentNo) {//没有专利号进入报错提示
|
|
|
- if ([3].includes(Number(this.form.reportType))) {
|
|
|
- var text = '请输入标的产品'
|
|
|
- } else {
|
|
|
- var text = '请输入标的专利号'
|
|
|
- }
|
|
|
- callback(new Error(text))
|
|
|
- } else {
|
|
|
- callback()
|
|
|
- }
|
|
|
- }
|
|
|
- const isTime = (rule, value, callback) => {
|
|
|
- if (this.isEndTime) {
|
|
|
- this.isEndTimes = Date.parse(new Date)
|
|
|
- }
|
|
|
-
|
|
|
- let b = Date.parse(value)
|
|
|
- if (value) {
|
|
|
- if (b < this.isEndTimes) {
|
|
|
- callback(new Error('禁止选择现在及以前时间,请重新选择'))
|
|
|
- } else {
|
|
|
- callback()
|
|
|
- }
|
|
|
- } else {
|
|
|
- callback(new Error('请选择时间'))
|
|
|
- }
|
|
|
- }
|
|
|
- return {
|
|
|
- //弹窗标题
|
|
|
- title: '',
|
|
|
- //控制弹窗是否打开
|
|
|
- showDialog: false,
|
|
|
- //表单数据
|
|
|
- form: {
|
|
|
- matterIds: [],
|
|
|
- systemFileList: [],
|
|
|
- fileGuids: [],
|
|
|
- },
|
|
|
- //表单规则
|
|
|
- rules: {
|
|
|
- name: [{ required: true, message: '请输入报告名称', trigger: 'blur' },],
|
|
|
- signPatentNo: [{ required: true, validator: isExist, trigger: 'blur' },],
|
|
|
- headId: [{ required: true, message: '请选择负责人', trigger: 'change' },],
|
|
|
- entrustId: [{ required: true, message: '请选择委托方', trigger: 'change' },],
|
|
|
- },
|
|
|
- //加载
|
|
|
- loading: false,
|
|
|
- //加载时显示的文字
|
|
|
- load_text: '加载中',
|
|
|
- //应用场景
|
|
|
- commonData: {},
|
|
|
- //核心结论
|
|
|
- conclusion: [],
|
|
|
- //部门数据
|
|
|
- departmentList: [],
|
|
|
- //需要复制的选项集合
|
|
|
- copyList: [],
|
|
|
- //人员列表
|
|
|
- // personnelList: [],
|
|
|
- //客户/委托方列表
|
|
|
- clientList: [],
|
|
|
- //上传文件列表
|
|
|
- files: [],
|
|
|
- //核心结论类型字典
|
|
|
- reportAsDicItem: {
|
|
|
- "0": "INVALID_ASSESS",
|
|
|
- "1": "THIRD_ASSESS",
|
|
|
- "2": "STABILITY_ASSESS",
|
|
|
- "3": "FTO_ASSESS",
|
|
|
- "4": "TORT_ASSESS",
|
|
|
- "5": "AVOID_ASSESS",
|
|
|
- "7": "REINVALID_ASSESS",
|
|
|
- },
|
|
|
- //需要复制的内容字典
|
|
|
- reportAsDicItemCopy: {
|
|
|
- "0": "INVALID_COPY",
|
|
|
- "1": "THIRD_COPY",
|
|
|
- "2": "STABILITY_COPY",
|
|
|
- "3": "FTO_COPY",
|
|
|
- "4": "TORT_COPY",
|
|
|
- "5": "AVOID_COPY",
|
|
|
- },
|
|
|
- // 客户懒加载obj
|
|
|
- clientObj: {
|
|
|
- queryParams: {
|
|
|
- current: 1,
|
|
|
- size: 10,
|
|
|
- },
|
|
|
- loading: false,
|
|
|
- //是否懒加载
|
|
|
- isLazy: true,
|
|
|
- data:[],
|
|
|
- },
|
|
|
- //人员列表懒加载
|
|
|
- personnelList: {
|
|
|
- queryParams: {
|
|
|
- current: 1,
|
|
|
- size: 10
|
|
|
- },
|
|
|
- data: []
|
|
|
- },
|
|
|
- //产品列表懒加载
|
|
|
- productList: {
|
|
|
- queryParams: {
|
|
|
- current: 1,
|
|
|
- size: 10
|
|
|
- },
|
|
|
- isLazy: true,
|
|
|
- data: []
|
|
|
- },
|
|
|
- matterType: null,
|
|
|
- //事件列表
|
|
|
- eventList: {
|
|
|
- queryParams: {
|
|
|
- current: 1,
|
|
|
- size: 10
|
|
|
- },
|
|
|
- data: []
|
|
|
- },
|
|
|
- // 控制调查类型是否显示
|
|
|
- show: false,
|
|
|
- //调查类型列表
|
|
|
- dictAssociates: [],
|
|
|
- /*审核弹窗所需变量start*/
|
|
|
- showTask: false,
|
|
|
- // 任务表单
|
|
|
- taskForm: {},
|
|
|
- isEndTime: true,
|
|
|
- isEndTimes: null,
|
|
|
- // 任务表单校验
|
|
|
- TaskRules: {
|
|
|
- taskName: [{ required: true, message: '请输入任务名称', trigger: 'blur' },],
|
|
|
- personnelId: [{ required: true, message: '请选择审核人', trigger: 'change' },],
|
|
|
- endTime: [{ required: true, validator: isTime, trigger: 'change' }],
|
|
|
- },
|
|
|
- /*审核弹窗所需变量end*/
|
|
|
- /*无效应对报告下一步弹窗所需变量start*/
|
|
|
- // 报告id
|
|
|
- reportId: null,
|
|
|
- // 控制弹窗的关闭
|
|
|
- showEvidenceAndRequest: false,
|
|
|
- /*无效应对报告下一步弹窗所需变量end*/
|
|
|
- };
|
|
|
- },
|
|
|
- watch: {},
|
|
|
- computed: {
|
|
|
- ...mapGetters(['webSocket', 'userinfo']),
|
|
|
- dictMessage() {
|
|
|
- return this.$store.state.dictMessage.dictMessage
|
|
|
- },
|
|
|
- scenario() {
|
|
|
- console.log(this.$store.state.dictMessage);
|
|
|
- return this.$store.state.dictMessage.scenario || []
|
|
|
- }
|
|
|
- },
|
|
|
- created() { },
|
|
|
- mounted() {
|
|
|
- // 获取所有产品
|
|
|
- this.getAllProduct()
|
|
|
- //获取所有人员列表(修改不要一次性获取,可以使用懒加载加远程搜索 )
|
|
|
- this.getPermissionPersonnel()
|
|
|
- //获取所有客户列表(修改不要一次性获取,可以使用懒加载加远程搜索 )
|
|
|
- this.getAllClientList()
|
|
|
- //获取所有部门列表
|
|
|
- this.getDepartment()
|
|
|
- },
|
|
|
- methods: {
|
|
|
- //打开事件弹窗
|
|
|
- addEvent() {
|
|
|
-
|
|
|
- },
|
|
|
- //懒加载事件
|
|
|
- loadEvent() {
|
|
|
- if (this.eventList.queryParams.current * this.eventList.queryParams.size >= this.eventList.queryParams.total) {
|
|
|
- return false
|
|
|
- }
|
|
|
- this.eventList.queryParams.current += 1
|
|
|
- this.getEventList()
|
|
|
- },
|
|
|
- //远程搜索
|
|
|
- remoteEvent(query) {
|
|
|
- this.eventList.data = []
|
|
|
- this.eventList.queryParams.current = 1
|
|
|
- this.eventList.name = query
|
|
|
- this.getEventList()
|
|
|
- },
|
|
|
- //获取事件列表
|
|
|
- async getEventList(type) {
|
|
|
- this.eventList.loading = true;
|
|
|
- let params = {
|
|
|
- ...this.eventList.queryParams,//分页信息
|
|
|
- searchQuery: this.eventList.name ? `name=${this.eventList.name}` : '',//检索条件
|
|
|
- orderDTOList: [{ orderBy: "createTime", orderType: 1 },]//排序
|
|
|
- }
|
|
|
- await this.$api.queryEvent(params).then(response => {
|
|
|
- if (response.code == 200) {
|
|
|
- this.eventList.loading = false;
|
|
|
- if (!type) {
|
|
|
- if (this.form.eventId) {
|
|
|
- var index = response.data.data.findIndex(item => {
|
|
|
- return item.id == this.form.eventId
|
|
|
- })
|
|
|
- if (index != -1) {
|
|
|
- response.data.data.splice(index, 1)
|
|
|
- }
|
|
|
- }
|
|
|
- this.eventList.queryParams.total = response.data.total
|
|
|
- }
|
|
|
- this.eventList.data.push(...response.data.data)
|
|
|
- // this.eventList.queryParams.total = response.data.total
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- //切换事件
|
|
|
- async changeEvent(val) {
|
|
|
- if (!val) {
|
|
|
- this.form.scenarioIds = []
|
|
|
- this.show = false
|
|
|
- this.form.matterIds = []
|
|
|
- return
|
|
|
- }
|
|
|
- var obj = this.eventList.data.find(item => {
|
|
|
- return item.id == val
|
|
|
- })
|
|
|
- if (obj) {
|
|
|
- this.form.scenarioIds = [obj.scenarioId]
|
|
|
- this.show = true
|
|
|
- await this.onChange()
|
|
|
- }
|
|
|
- },
|
|
|
- //调查类型选择切换
|
|
|
- async onChange() {
|
|
|
- if (this.form.scenarioIds.length != 0) {
|
|
|
- await this.$api.getMatter(this.form.scenarioIds).then(response => {
|
|
|
- this.show = true
|
|
|
- this.dictAssociates = response.data.data
|
|
|
- })
|
|
|
- } else {
|
|
|
- this.show = false
|
|
|
- }
|
|
|
- },
|
|
|
- //打开弹窗
|
|
|
- async open(form) {
|
|
|
- var a = ''
|
|
|
- this.form = JSON.parse(JSON.stringify(form))
|
|
|
- if (this.form.id) {
|
|
|
- if (this.$reportPermission(this.form.id, [0, 1])) {
|
|
|
- a = '编辑'
|
|
|
- } else {
|
|
|
- a = '查看'
|
|
|
- }
|
|
|
- } else {
|
|
|
- this.$set(this.form,'matterIds',[])
|
|
|
- this.$set(this.form,'systemFileList',[])
|
|
|
- this.$set(this.form,'fileGuids',[])
|
|
|
- a = '创建'
|
|
|
- }
|
|
|
- var reportType = this.dictMessage.REPORT_TYPE.filter(item => { return item.value == this.form.reportType })[0].label
|
|
|
- this.title = a + reportType + '报告'
|
|
|
- // 事件
|
|
|
- if (this.form.eventIds && this.form.eventIds.length > 0) {
|
|
|
- this.form.eventId = this.form.eventIds[0]
|
|
|
- this.onChange()
|
|
|
- this.eventList.queryParams.id = this.form.eventId[0]
|
|
|
- await this.getEventList(1)
|
|
|
- this.eventList.queryParams.id = null
|
|
|
- this.show = true
|
|
|
- } else {
|
|
|
- this.show = false
|
|
|
- }
|
|
|
- // 文件
|
|
|
- if (this.form.systemFileList && this.form.systemFileList.length > 0) {
|
|
|
- this.$set(this.form, 'fileGuids', [])
|
|
|
- this.form.systemFileList.forEach(item => {
|
|
|
- this.form.fileGuids.push(item.guid)
|
|
|
- })
|
|
|
- }
|
|
|
- // 负责人
|
|
|
- if (this.form.headId) {
|
|
|
- this.personnelList.queryParams.id = this.form.headId
|
|
|
- await this.getPermissionPersonnel(1)
|
|
|
- this.personnelList.queryParams.id = null
|
|
|
- }
|
|
|
- // 委托方
|
|
|
- if (this.form.entrustId) {
|
|
|
- this.personnelList.queryParams.id = this.form.headId
|
|
|
- await this.getPermissionPersonnel(1)
|
|
|
- this.personnelList.queryParams.id = null
|
|
|
- }
|
|
|
- this.getPermissionPersonnel()
|
|
|
- this.getEventList()
|
|
|
- this.showDialog = true
|
|
|
- },
|
|
|
- // 产品列表远程搜索
|
|
|
- remoteMethodProduct(query) {
|
|
|
- this.productList.isLazy = true
|
|
|
- if (query !== '') {
|
|
|
- this.productList.loading = true;
|
|
|
- this.productList.queryParams = {
|
|
|
- current: 1,
|
|
|
- size: 10,
|
|
|
- searchQuery: `name=${query}`
|
|
|
- }
|
|
|
- this.$api.queryProductCategory(this.productList.queryParams).then(response => {
|
|
|
- if (response.code == 200) {
|
|
|
- this.productList.loading = false;
|
|
|
- this.productList.data = response.data.data
|
|
|
- }
|
|
|
- }).catch(error => {
|
|
|
- this.productList.loading = false;
|
|
|
- })
|
|
|
- } else {
|
|
|
- this.productList.queryParams.name = null
|
|
|
- this.productList = [];
|
|
|
- this.getAllProduct()
|
|
|
- }
|
|
|
- },
|
|
|
- // 产品列表懒加载
|
|
|
- lazyLoadingProduct() {
|
|
|
- if (!this.productList.isLazy) {
|
|
|
- return false
|
|
|
- }
|
|
|
- this.productList.queryParams.current++;
|
|
|
- this.getAllProduct();
|
|
|
- },
|
|
|
- getAllProduct() {
|
|
|
- if (!this.productList.isLazy) {
|
|
|
- return false
|
|
|
- }
|
|
|
- this.$api.queryProductCategory(this.productList.queryParams).then(response => {
|
|
|
- if (response.code == 200) {
|
|
|
- if (response.data.data && response.data.data.length == 0) {
|
|
|
- this.productList.isLazy = false
|
|
|
- }
|
|
|
- this.productList.data = [...this.productList.data, ...response.data.data];
|
|
|
- }
|
|
|
- }).catch(error => {
|
|
|
- })
|
|
|
- },
|
|
|
- // 人员列表远程搜索
|
|
|
- remoteMethodPerson(query) {
|
|
|
- this.personnelList.data = []
|
|
|
- this.personnelList.queryParams.current = 1
|
|
|
- this.personnelList.queryParams.name = query
|
|
|
- this.getPermissionPersonnel()
|
|
|
- },
|
|
|
- // 获取所有人员列表懒加载
|
|
|
- lazyLoadingPerson() {
|
|
|
- if (this.personnelList.queryParams.current * this.personnelList.queryParams.size >= this.personnelList.queryParams.total) {
|
|
|
- return false
|
|
|
- }
|
|
|
- this.personnelList.queryParams.current += 1
|
|
|
- this.getPermissionPersonnel()
|
|
|
- },
|
|
|
- //获取所有人员列表(修改不要一次性获取,可以使用懒加载加远程搜索 )
|
|
|
- async getPermissionPersonnel(type) {
|
|
|
- this.personnelList.loading = true;
|
|
|
- await this.$api.getPermissionPersonnel(this.personnelList.queryParams).then((response) => {
|
|
|
- if (response.code == 200) {
|
|
|
- this.personnelList.loading = false;
|
|
|
- if (!type) {
|
|
|
- if (this.form.headId) {
|
|
|
- var index = response.data.findIndex(item => {
|
|
|
- return item.id == this.form.headId
|
|
|
- })
|
|
|
- if (index != -1) {
|
|
|
- response.data.splice(index, 1)
|
|
|
- }
|
|
|
- }
|
|
|
- this.personnelList.queryParams.total = response.pageColumn.total
|
|
|
- }
|
|
|
- this.personnelList.data.push(...response.data)
|
|
|
- // this.personnelList.queryParams.total = response.pageColumn.total
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- // 客户列表远程搜索
|
|
|
- remoteMethodClient(query) {
|
|
|
- if (query != '') {
|
|
|
- this.clientObj.loading = true;
|
|
|
- this.clientObj.queryParams.current = 1
|
|
|
- this.clientObj.queryParams.name = query
|
|
|
- this.$api.getAllClientList(this.clientObj.queryParams).then(response => {
|
|
|
- if (response.code == 200) {
|
|
|
- this.clientObj.loading = false;
|
|
|
- this.clientList = response.data.records
|
|
|
- }
|
|
|
- }).catch(error => {
|
|
|
- this.clientObj.loading = false;
|
|
|
- })
|
|
|
- } else {
|
|
|
- this.clientObj.queryParams.name = null
|
|
|
- this.clientList = [];
|
|
|
- this.getAllClientList()
|
|
|
- }
|
|
|
- },
|
|
|
- // 获取所有客户列表懒加载
|
|
|
- lazyLoadingClient() {
|
|
|
- if (this.clientObj.queryParams.current * this.clientObj.queryParams.size >= this.clientObj.queryParams.total) {
|
|
|
- return false
|
|
|
- }
|
|
|
- this.clientObj.queryParams.current += 1
|
|
|
- this.getAllClientList()
|
|
|
- },
|
|
|
- //获取所有客户列表(修改不要一次性获取,可以使用懒加载加远程搜索 )
|
|
|
- getAllClientList() {
|
|
|
- this.$api.getAdminClientList(this.clientObj.queryParams).then(response => {
|
|
|
- this.clientList.push(...response.data.records)
|
|
|
- this.clientObj.queryParams.total = response.data.total
|
|
|
- }).catch(error => {
|
|
|
- this.clientList = []
|
|
|
- this.$message.error(error.message)
|
|
|
- })
|
|
|
- },
|
|
|
- //获取所有部门列表
|
|
|
- //获取部门列表
|
|
|
- getDepartment() {
|
|
|
- this.$api.getPermissionDepartmentList().then((response) => {
|
|
|
- this.departmentList = response.data;
|
|
|
- });
|
|
|
- },
|
|
|
- //切换是否完成状态
|
|
|
- async changeStatus(val) {
|
|
|
- if (val == 3) {
|
|
|
- this.rules.headId[0].required = false
|
|
|
- this.rules.entrustId[0].required = false
|
|
|
- if (!this.form.id) {
|
|
|
- this.$set(this.form, 'cronIds', [])
|
|
|
- }
|
|
|
- let params = {
|
|
|
- reportType:this.form.reportType
|
|
|
- }
|
|
|
- await this.$api.queryCrons(params).then(res => {
|
|
|
- if (res.code == 200) {
|
|
|
- this.conclusion=res.data.data
|
|
|
- }
|
|
|
- }).catch(error => {
|
|
|
- this.conclusion = []
|
|
|
- this.$message.error(error.message)
|
|
|
- })
|
|
|
- // this.conclusion = this.dictMessage[this.reportAsDicItem[this.form.reportType]]
|
|
|
- this.matterType = 2
|
|
|
- } else {
|
|
|
- this.rules.headId[0].required = true
|
|
|
- this.rules.entrustId[0].required = true
|
|
|
- this.matterType = null
|
|
|
- }
|
|
|
- },
|
|
|
- //获取专利号且填入报告名称
|
|
|
- getPatentNo() {
|
|
|
- if (!this.form.name) {
|
|
|
- var a = this.dictMessage.REPORT_TYPE.filter(item => { return item.value == this.form.reportType })[0].label
|
|
|
- this.$set(this.form, 'name', this.form.signPatentNo + a)
|
|
|
- }
|
|
|
- },
|
|
|
- //修改需要复制的选项
|
|
|
- changeCopyIds(val) {
|
|
|
- if (Object.keys(this.copyIndex).length > 0) {
|
|
|
- var index = this.copyList.findIndex(item => {
|
|
|
- return item.label == '对比文件'
|
|
|
- })
|
|
|
- if (index != -1) {
|
|
|
- var id = this.copyList[index].value
|
|
|
- var index2 = this.copyList.findIndex(item => {
|
|
|
- return item.label == '标引信息'
|
|
|
- })
|
|
|
- if (val.indexOf(id) != -1) {
|
|
|
- if (index2 == -1) {
|
|
|
- this.copyList.splice(index + 1, 0, this.copyIndex)
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (index2 != -1) {
|
|
|
- this.copyList.splice(index2, 1)
|
|
|
- this.form.copyIds.splice(this.form.copyIds.indexOf(this.copyIndex.value), 1)
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- // 上传的文件监听
|
|
|
- onchangeFile(file, fileList) {
|
|
|
- if (file.guid) {
|
|
|
- let index = this.form.systemFileList.findIndex(item => {
|
|
|
- return item.uid == file.uid
|
|
|
- })
|
|
|
- if (index != -1) {
|
|
|
- this.form.systemFileList.splice(index, 1, file)
|
|
|
- this.form.fileGuids.push(file.guid)
|
|
|
- }
|
|
|
- } else {
|
|
|
- this.form.systemFileList.push(file.raw)
|
|
|
- }
|
|
|
-
|
|
|
- },
|
|
|
- // 删除上传的文件
|
|
|
- onRemove(file, fileList) {
|
|
|
- if (file.guid) {
|
|
|
- let index = this.form.systemFileList.findIndex(item => {
|
|
|
- return item.guid == file.guid
|
|
|
- })
|
|
|
- if (index!=-1) {
|
|
|
- this.form.systemFileList.splice(index, 1)
|
|
|
- }
|
|
|
- let index2 = this.form.fileGuids.findIndex(item => {
|
|
|
- return item == file.guid
|
|
|
- })
|
|
|
- if (index2 != -1) {
|
|
|
- this.form.fileGuids.splice(index2, 1)
|
|
|
- }
|
|
|
- } else {
|
|
|
- let index3 = this.form.systemFileList.findIndex(item => {
|
|
|
- return item.uid == file.uid
|
|
|
- })
|
|
|
- if (index3 != -1) {
|
|
|
- this.form.fileGuids.splice(index3, 1)
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- //上传附件时点击查看附件内容
|
|
|
- onPreview(file) {
|
|
|
- var item = {
|
|
|
- name: file.name,
|
|
|
- suffix: '',
|
|
|
- downLoad: true
|
|
|
- }
|
|
|
- var index = file.raw.type.lastIndexOf('/')
|
|
|
- var type = file.raw.type.substring(index + 1, file.raw.type.length)
|
|
|
- var arr = ['png', 'jpeg', 'bmp', 'jpg']
|
|
|
- if (arr.includes(type)) {
|
|
|
- var FileUrl = URL.createObjectURL(file.raw)
|
|
|
- var isPicture = 1
|
|
|
- } else if (type == 'pdf') {
|
|
|
- var FileUrl = URL.createObjectURL(file.raw)
|
|
|
- var isPicture = 0
|
|
|
- } else {
|
|
|
- return false
|
|
|
- }
|
|
|
- const router = this.$router.resolve({
|
|
|
- path: '/checkFile',
|
|
|
- query: {
|
|
|
- row: JSON.stringify(item),
|
|
|
- FileUrl: FileUrl,
|
|
|
- isPicture: isPicture
|
|
|
- }
|
|
|
- })
|
|
|
- window.open(router.href, '_blank');
|
|
|
- },
|
|
|
- //提交填写的信息
|
|
|
- submit() {
|
|
|
- this.$refs.reportForm.validate((valid) => {
|
|
|
- if (valid) {
|
|
|
- this.form.type = 2//项目类型(1专利数据库 2报告 3专利挖掘项目)
|
|
|
- if (this.form.scenarioIds && this.form.scenarioIds.length>0) {
|
|
|
- var scenarioIds = JSON.parse(JSON.stringify(this.form.scenarioIds))
|
|
|
- }
|
|
|
- if (this.form.eventId) {
|
|
|
- this.form.events = []
|
|
|
- this.form.scenarioIds = []
|
|
|
- this.form.matterIds.forEach(item => {
|
|
|
- this.form.events.push(
|
|
|
- {
|
|
|
- matterId: item,
|
|
|
- scenarioId: scenarioIds[0],
|
|
|
- eventId: this.form.eventId
|
|
|
- }
|
|
|
- )
|
|
|
- })
|
|
|
- }
|
|
|
- let formData = this.form
|
|
|
- if (!this.form.id) {//新增报告
|
|
|
- this.$confirm('是否需要进行审核?', '提示', {
|
|
|
- confirmButtonText: '是',
|
|
|
- cancelButtonText: '否',
|
|
|
- closeOnClickModal: false,
|
|
|
- distinguishCancelAndClose: true,
|
|
|
- }).then(() => {//审核打开审核弹窗
|
|
|
- this.showTask = true
|
|
|
- this.$set(this.taskForm, 'taskName', this.form.name + '审核')
|
|
|
- }).catch(action => {//不审核直接创建报告
|
|
|
- // 调用创建报告公用,接口
|
|
|
- this.addReport(formData)
|
|
|
- });
|
|
|
-
|
|
|
- } else {//编辑报告
|
|
|
- this.$api.updateReportProject(formData).then(response => {
|
|
|
- if (response.code == 200) {
|
|
|
- this.files = []
|
|
|
- this.$message.success('报告更新成功')
|
|
|
- this.$emit('getList', true)
|
|
|
- this.handleClose()
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- //关闭弹窗
|
|
|
- handleClose(val) {
|
|
|
- if (this.form.reportType == 7 && val) {
|
|
|
- this.showEvidenceAndRequest = true
|
|
|
- this.$s.setSession('params', {})
|
|
|
- this.reportId = val
|
|
|
- }
|
|
|
- this.personnelList.queryParams.name = ''
|
|
|
- this.$refs.reportForm.resetFields()
|
|
|
- this.form = {
|
|
|
- matterIds: [],
|
|
|
- systemFileList: [],
|
|
|
- fileGuids: [],
|
|
|
- }
|
|
|
- this.showDialog = false
|
|
|
- },
|
|
|
- // 创建报告创建接口公用
|
|
|
- addReport(formData) {
|
|
|
- this.$api.addReportProject(formData).then(response => {
|
|
|
- if (response.code == 200) {
|
|
|
- this.files = []
|
|
|
- this.$message.success('报告创建成功')
|
|
|
- this.$emit('getList', true)
|
|
|
- // response.data是创建成功后返回的报告id
|
|
|
- this.handleClose(response.data)
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- //提交审核任务
|
|
|
- submitTask() {
|
|
|
- this.isEndTime = false
|
|
|
- this.$refs.TaskForm.validate((valid) => {
|
|
|
- if (valid) {
|
|
|
- let formData = new FormData()
|
|
|
- if (this.files && this.files.length > 0) {
|
|
|
- for (var i = 0; i < this.files.length; i++) {
|
|
|
- formData.append("files", this.files[i]);
|
|
|
- }
|
|
|
- }
|
|
|
- let a = {
|
|
|
- report: this.form,
|
|
|
- personIds: [this.taskForm.personnelId],
|
|
|
- taskName: this.taskForm.taskName,
|
|
|
- endTime: this.taskForm.endTime,
|
|
|
- description: this.taskForm.description,
|
|
|
- type: 0,
|
|
|
- }
|
|
|
- formData.append('taskVO', JSON.stringify(a))
|
|
|
- this.$api.AddTask(formData).then(response => {
|
|
|
- if (response.code == 200) {
|
|
|
- this.files = []
|
|
|
- this.$message.success('报告创建成功并发送审核')
|
|
|
- this.$emit('getList', true)
|
|
|
- this.handleCloseTask()
|
|
|
- this.handleClose()
|
|
|
- }
|
|
|
- }).catch(error => {
|
|
|
- this.$message.error('报告创建失败')
|
|
|
- this.handleCloseTask()
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- //关闭审核弹窗
|
|
|
- handleCloseTask() {
|
|
|
- this.matterType = null
|
|
|
- this.$refs.TaskForm.resetFields()
|
|
|
- this.taskForm = {}
|
|
|
- this.showTask = false
|
|
|
- this.isEndTime = true
|
|
|
- },
|
|
|
- // 创建无效应对报告下一步
|
|
|
- ifNext() {
|
|
|
- this.$refs.reportForm.validate((valid) => {
|
|
|
- if (valid) {
|
|
|
- let formData = new FormData()
|
|
|
- if (this.files && this.files.length > 0) {
|
|
|
- for (var i = 0; i < this.files.length; i++) {
|
|
|
- formData.append("files", this.files[i]);
|
|
|
- }
|
|
|
- }
|
|
|
- formData.append('report', this.form)
|
|
|
- this.addReport(formData)
|
|
|
- } else {
|
|
|
- this.loading = false
|
|
|
- this.$alert('校验未通过,请按照要求创建报告', '提示', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- type: 'warning',
|
|
|
- callback: action => {
|
|
|
- }
|
|
|
- });
|
|
|
- return false;
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
-
|
|
|
- },
|
|
|
- // 组件销毁函数
|
|
|
- destroyed() {
|
|
|
- // 清空事件相关
|
|
|
- this.form.eventIds = []
|
|
|
- this.eventList.queryParams.current=1
|
|
|
- this.eventList.data=[]
|
|
|
- // 清空负责人相关
|
|
|
- this.personnelList.data = []
|
|
|
- this.personnelList.queryParams.current=1
|
|
|
- },
|
|
|
-};
|
|
|
-</script>
|
|
|
-<style lang="scss" scoped></style>
|