Compare commits
2 Commits
1836b7b84b
...
3863159a3b
| Author | SHA1 | Date |
|---|---|---|
|
|
3863159a3b | |
|
|
80f329c617 |
|
|
@ -94,14 +94,13 @@
|
||||||
<span v-else>—</span>
|
<span v-else>—</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="所在节点" min-width="60">
|
<el-table-column label="审批信息" width="200">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{scope.row.ticket_?.state_?.name}}
|
<el-tag :type="actStateEnum[scope.row.ticket_?.act_state]?.type">
|
||||||
</template>
|
{{ actStateEnum[scope.row.ticket_?.act_state]?.text }}
|
||||||
</el-table-column>
|
</el-tag>
|
||||||
<el-table-column label="进行状态" min-width="60">
|
<el-tag type="info" effect="plain">{{ scope.row.ticket_?.state_.name }}</el-tag>
|
||||||
<template #default="scope">
|
|
||||||
{{statusOptions[scope.row.ticket_?.state_?.type]}}
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" fixed="right" align="center" width="120">
|
<el-table-column label="操作" fixed="right" align="center" width="120">
|
||||||
|
|
@ -110,8 +109,7 @@
|
||||||
link
|
link
|
||||||
size="small"
|
size="small"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="paperseEdit(scope.row)"
|
@click="paperseShow(scope.row)"
|
||||||
v-auth="'PaperSe.update'"
|
|
||||||
>详情
|
>详情
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-popconfirm
|
<el-popconfirm
|
||||||
|
|
@ -134,7 +132,7 @@
|
||||||
</el-main>
|
</el-main>
|
||||||
</el-container>
|
</el-container>
|
||||||
<el-drawer
|
<el-drawer
|
||||||
:title="drawerTitle[mode]"
|
title="专利管理"
|
||||||
v-model="limitedVisible"
|
v-model="limitedVisible"
|
||||||
:destroy-on-close="true"
|
:destroy-on-close="true"
|
||||||
direction="rtl"
|
direction="rtl"
|
||||||
|
|
@ -144,8 +142,7 @@
|
||||||
<div style="flex: 1; padding-right: 20px; overflow-y: auto;">
|
<div style="flex: 1; padding-right: 20px; overflow-y: auto;">
|
||||||
<PaperForm
|
<PaperForm
|
||||||
:mode="mode"
|
:mode="mode"
|
||||||
v-model="addForm"
|
:t_id="t_id"
|
||||||
:transitions="transitions"
|
|
||||||
@success="()=>{handleQuery(); limitedVisible = false}"
|
@success="()=>{handleQuery(); limitedVisible = false}"
|
||||||
@closed="limitedVisible = false"
|
@closed="limitedVisible = false"
|
||||||
/>
|
/>
|
||||||
|
|
@ -156,116 +153,57 @@
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
import PaperForm from "./paperse_form.vue";
|
import PaperForm from "./paperse_form.vue";
|
||||||
|
import { actStateEnum, interveneTypeEnum } from "@/utils/enum.js";
|
||||||
export default {
|
export default {
|
||||||
components: { PaperForm},
|
components: { PaperForm},
|
||||||
name: "index",
|
name: "index",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
workflowName:"",
|
actStateEnum, interveneTypeEnum,
|
||||||
workFlowId:'',
|
|
||||||
apiObj: this.$API.srm.papersecret.list,
|
apiObj: this.$API.srm.papersecret.list,
|
||||||
selection: [],
|
t_id: null,
|
||||||
checkList: [],
|
|
||||||
fileList: [],
|
|
||||||
transitions:[],
|
|
||||||
timeRange: [],
|
|
||||||
lending_type: "",
|
|
||||||
query: {},
|
|
||||||
editId: null,
|
|
||||||
isSaving: false,
|
|
||||||
limitedVisible: false,
|
limitedVisible: false,
|
||||||
mode: "add",
|
mode: "show",
|
||||||
drawerTitle: {
|
fileList: [],
|
||||||
add: "新增论文申密",
|
query: {},
|
||||||
edit: "审批流",
|
|
||||||
view: "查看论文申密",
|
|
||||||
},
|
|
||||||
statusOptions:{
|
|
||||||
0: "审批中",
|
|
||||||
1: "初始中",
|
|
||||||
2: "已完成",
|
|
||||||
},
|
|
||||||
currentRow: null,
|
|
||||||
//表单数据
|
|
||||||
addForm: {
|
|
||||||
paper_name: "",
|
|
||||||
publication_name:"",
|
|
||||||
author: "",
|
|
||||||
paper_type: "",
|
|
||||||
is_chinese_core: false,
|
|
||||||
is_sci: false,
|
|
||||||
tech_status: [],
|
|
||||||
tech_file: [],
|
|
||||||
ticket_:null
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted(){
|
|
||||||
let that = this;
|
|
||||||
that.getInit();
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
//添加工作流
|
|
||||||
//渲染工单提交按钮
|
|
||||||
getInit() {
|
|
||||||
let that = this;
|
|
||||||
if(this.addForm.ticket_!==null){
|
|
||||||
this.$API.wf.ticket_.ticketTransitions.req(this.addForm.ticket_).then((res) => {
|
|
||||||
that.transitions = res;
|
|
||||||
})
|
|
||||||
}else{
|
|
||||||
that.$API.wf.workflow.initkey.req("paperse").then((res) => {
|
|
||||||
that.initForm = res;
|
|
||||||
that.transitions = res.transitions;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.mode = "add";
|
this.mode = "add";
|
||||||
this.addForm = this.getDefaultForm();
|
this.t_id = null;
|
||||||
this.lending_type = "";
|
|
||||||
this.limitedVisible = true;
|
this.limitedVisible = true;
|
||||||
},
|
},
|
||||||
handleCancel() {
|
// getDefaultForm(){
|
||||||
this.limitedVisible = false; // 关闭弹窗
|
// return {
|
||||||
this.lending_type = ""; // 重置 lending_type
|
// paper_name: "",
|
||||||
this.getDefaultForm()// 清空表单
|
// publication_name:"",
|
||||||
},
|
// author: "",
|
||||||
|
// paper_type: "",
|
||||||
getDefaultForm(){
|
// is_chinese_core: false,
|
||||||
return {
|
// is_sci: false,
|
||||||
paper_name: "",
|
// tech_status: [{ name: "是否进行过科技成果鉴定", status: "", fileList: [] },
|
||||||
publication_name:"",
|
// { name: "是否发表过文章", status: "", fileList: [] },
|
||||||
author: "",
|
// { name: "是否参与过展会展出", status: "", fileList: [] },
|
||||||
paper_type: "",
|
// { name: "是否应用于生产/销售", status: "", fileList: [] },
|
||||||
is_chinese_core: false,
|
// { name: "是否参与过技术交流", status: "", fileList: [] }],
|
||||||
is_sci: false,
|
// tech_file: [ { name: "论文内容", status: "", pages: "" },
|
||||||
tech_status: [{ name: "是否进行过科技成果鉴定", status: "", fileList: [] },
|
// { name: "图或者照片", pages: "" }],
|
||||||
{ name: "是否发表过文章", status: "", fileList: [] },
|
// ticket_:null
|
||||||
{ name: "是否参与过展会展出", status: "", fileList: [] },
|
// }
|
||||||
{ name: "是否应用于生产/销售", status: "", fileList: [] },
|
// },
|
||||||
{ name: "是否参与过技术交流", status: "", fileList: [] }],
|
|
||||||
tech_file: [ { name: "论文内容", status: "", pages: "" },
|
|
||||||
{ name: "图或者照片", pages: "" }],
|
|
||||||
ticket_:null
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 审批流结束之后才可以编辑
|
// 审批流结束之后才可以编辑
|
||||||
paperseEdit(row) {
|
paperseShow(row) {
|
||||||
this.mode = "view";
|
this.mode = "show";
|
||||||
this.editId = row.id;
|
this.t_id = row.id;
|
||||||
this.limitedVisible = true;
|
this.limitedVisible = true;
|
||||||
this.addForm = Object.assign({}, row);
|
|
||||||
},
|
},
|
||||||
async papersetDel(row) {
|
async papersetDel(row) {
|
||||||
var id = row.id;
|
var id = row.id;
|
||||||
var res = await this.$API.srm.papersecret.delete.req(id);
|
var res = await this.$API.srm.papersecret.delete.req(id);
|
||||||
if (res.err_msg) {
|
|
||||||
this.$message.error(res.err_msg);
|
|
||||||
} else {
|
|
||||||
this.$refs.table.refresh();
|
this.$refs.table.refresh();
|
||||||
this.$message.success("删除成功");
|
this.$message.success("删除成功");
|
||||||
}
|
|
||||||
},
|
},
|
||||||
//搜索
|
//搜索
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
|
|
|
||||||
|
|
@ -3,28 +3,28 @@
|
||||||
<el-main>
|
<el-main>
|
||||||
<el-form :model="localForm" label-width="150px" label-position="left" :rules="rules">
|
<el-form :model="localForm" label-width="150px" label-position="left" :rules="rules">
|
||||||
<el-form-item label="拟发表论文名称" prop="paper_name">
|
<el-form-item label="拟发表论文名称" prop="paper_name">
|
||||||
<el-input v-model="localForm.paper_name" clearable :disabled="localMode ==='view'"></el-input>
|
<el-input v-model="localForm.paper_name" clearable :disabled="localMode ==='show'"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="拟投期刊名称" prop="publication_name">
|
<el-form-item label="拟投期刊名称" prop="publication_name">
|
||||||
<el-input v-model="localForm.publication_name" clearable :disabled="localMode ==='view'"></el-input>
|
<el-input v-model="localForm.publication_name" clearable :disabled="localMode ==='show'"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="作者" prop="author" >
|
<el-form-item label="作者" prop="author" >
|
||||||
<el-input v-model="localForm.author" clearable ></el-input>
|
<el-input v-model="localForm.author" clearable ></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="拟发表文章类型" prop="paper_type">
|
<el-form-item label="拟发表文章类型" prop="paper_type">
|
||||||
<el-select v-model="localForm.paper_type" placeholder="请选择拟发表文章类型" :disabled="localMode ==='view'">
|
<el-select v-model="localForm.paper_type" placeholder="请选择拟发表文章类型" :disabled="localMode ==='show'">
|
||||||
<el-option label="研究论文" value="研究论文"></el-option>
|
<el-option label="研究论文" value="研究论文"></el-option>
|
||||||
<el-option label="综述" value="综述"></el-option>
|
<el-option label="综述" value="综述"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="是否为中文核心" prop="is_chinese_core">
|
<el-form-item label="是否为中文核心" prop="is_chinese_core">
|
||||||
<el-radio-group v-model="localForm.is_chinese_core" :disabled="localMode ==='view'">
|
<el-radio-group v-model="localForm.is_chinese_core" :disabled="localMode ==='show'">
|
||||||
<el-radio :label="true">是</el-radio>
|
<el-radio :label="true">是</el-radio>
|
||||||
<el-radio :label="false">否</el-radio>
|
<el-radio :label="false">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="是否被SCI/EI收录" prop="is_sci">
|
<el-form-item label="是否被SCI/EI收录" prop="is_sci">
|
||||||
<el-radio-group v-model="localForm.is_sci" :disabled="localMode ==='view'">
|
<el-radio-group v-model="localForm.is_sci" :disabled="localMode ==='show'">
|
||||||
<el-radio :label="true">是</el-radio>
|
<el-radio :label="true">是</el-radio>
|
||||||
<el-radio :label="false">否</el-radio>
|
<el-radio :label="false">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
|
|
@ -34,7 +34,7 @@
|
||||||
<el-col :span="12" v-for="(item, index) in localForm.tech_status || []" :key="index">
|
<el-col :span="12" v-for="(item, index) in localForm.tech_status || []" :key="index">
|
||||||
<div class="class-row">
|
<div class="class-row">
|
||||||
<span>{{ item.name }}</span>
|
<span>{{ item.name }}</span>
|
||||||
<el-radio-group v-model="item.status" @change="handleStatusChange(item)" style="margin-left: 20px;" :disabled="localMode ==='view'">
|
<el-radio-group v-model="item.status" @change="handleStatusChange(item)" style="margin-left: 20px;" :disabled="localMode ==='show'">
|
||||||
<el-radio label="是">是</el-radio>
|
<el-radio label="是">是</el-radio>
|
||||||
<el-radio label="否">否</el-radio>
|
<el-radio label="否">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
|
|
@ -42,27 +42,32 @@
|
||||||
<div v-if="item.status === '是'" class="upload-section">
|
<div v-if="item.status === '是'" class="upload-section">
|
||||||
<sc-upload-file
|
<sc-upload-file
|
||||||
multiple
|
multiple
|
||||||
:limit="3"
|
:limit="1"
|
||||||
:accept="['.xlsx', '.xls','.pdf','.docx', '.doc', '.jpg', '.png', '.jpeg']"
|
:accept="['.xlsx', '.xls','.pdf','.docx', '.doc', '.jpg', '.png', '.jpeg']"
|
||||||
@success = "(res)=>fileUPSuccess(res, item)"
|
@success = "(res)=>fileUPSuccess(res, item)"
|
||||||
:disabled="localMode ==='view'"
|
:disabled="localMode ==='show'"
|
||||||
>
|
>
|
||||||
<el-button type="primary" size="small" icon="el-icon-upload"> </el-button>
|
<el-button type="primary" size="small" icon="el-icon-upload"> </el-button>
|
||||||
</sc-upload-file>
|
</sc-upload-file>
|
||||||
|
<div v-if="item.file" class="file-list">
|
||||||
|
<el-link type="primary" :href="item.file" target="_blank">
|
||||||
|
{{ item.file.split('/').pop() }}
|
||||||
|
</el-link>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="技术文件" prop="tech_file">
|
<el-form-item label="技术文件" prop="tech_file">
|
||||||
<div class="file-item" v-for="(item, index) in localForm.tech_file || []" :key="index">
|
<div class="file-item" v-for="(item, index) in localForm.tech_file || []" :key="index">
|
||||||
<el-checkbox class="file-checkbox" v-model="item.checked" @change="handleCheckChange(item)" :disabled="localMode ==='view'">
|
<el-checkbox class="file-checkbox" v-model="item.checked" @change="handleCheckChange(item)" :disabled="localMode ==='show'">
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
</el-checkbox>
|
</el-checkbox>
|
||||||
<el-input
|
<el-input
|
||||||
class="page-input"
|
class="page-input"
|
||||||
v-model="item.pages"
|
v-model="item.pages"
|
||||||
placeholder="页/张数"
|
placeholder="页/张数"
|
||||||
:disabled="!item.checked || localMode ==='view'"
|
:disabled="!item.checked || localMode ==='show'"
|
||||||
type="number"
|
type="number"
|
||||||
min="0">
|
min="0">
|
||||||
<template v-slot:append>页/张</template>
|
<template v-slot:append>页/张</template>
|
||||||
|
|
@ -70,7 +75,7 @@
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-footer v-show="localMode!=='show'">
|
<el-footer>
|
||||||
<ticketd_b
|
<ticketd_b
|
||||||
:workflow_key="'paperse'"
|
:workflow_key="'paperse'"
|
||||||
:title="ticketTitle"
|
:title="ticketTitle"
|
||||||
|
|
@ -80,7 +85,6 @@
|
||||||
:submit_b_func="submit_b_func"
|
:submit_b_func="submit_b_func"
|
||||||
ref="ticketd_b"
|
ref="ticketd_b"
|
||||||
@success="$emit('success')"
|
@success="$emit('success')"
|
||||||
@colsed="$emit('closed')"
|
|
||||||
/>
|
/>
|
||||||
</el-footer>
|
</el-footer>
|
||||||
</el-main>
|
</el-main>
|
||||||
|
|
@ -100,40 +104,46 @@ import ticketd_b from "@/views/wf/ticketd_b.vue";
|
||||||
import ticketd from '@/views/wf/ticketd.vue'
|
import ticketd from '@/views/wf/ticketd.vue'
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
mode: { type: String, default: "view" }, // add / edit / view
|
mode: { type: String,
|
||||||
modelValue: { type: Object, default: () => ({}) },
|
default: "show"
|
||||||
|
},
|
||||||
t_id: {
|
t_id: {
|
||||||
type: String,
|
type: String,
|
||||||
default: null
|
default: null
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
components: {ticketd, ticketd_b},
|
components: {ticketd, ticketd_b},
|
||||||
emits: ["update:modelValue", "submit", "cancel"],
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
ticket_data: {},
|
ticket_data: {},
|
||||||
ticketTitle: "论文申密申请",
|
ticketTitle: "论文申密申请",
|
||||||
localMode : this.mode,
|
localMode : this.mode,
|
||||||
|
localForm: {
|
||||||
|
paper_name: "",
|
||||||
|
publication_name:"",
|
||||||
|
author: "",
|
||||||
|
paper_type: "",
|
||||||
|
is_chinese_core: false,
|
||||||
|
is_sci: false,
|
||||||
|
tech_status: [{ name: "是否进行过科技成果鉴定", status: "", fileList: [] },
|
||||||
|
{ name: "是否发表过文章", status: "", fileList: [] },
|
||||||
|
{ name: "是否参与过展会展出", status: "", fileList: [] },
|
||||||
|
{ name: "是否应用于生产/销售", status: "", fileList: [] },
|
||||||
|
{ name: "是否参与过技术交流", status: "", fileList: [] }],
|
||||||
|
tech_file: [ { name: "论文内容", status: "", pages: "" },
|
||||||
|
{ name: "图或者照片", pages: "" }],
|
||||||
|
ticket_:null
|
||||||
|
},
|
||||||
rules: {
|
rules: {
|
||||||
filename: [{ required: true, message: "请输入文件名称", trigger: "blur" }],
|
filename: [{ required: true, message: "请输入文件名称", trigger: "blur" }],
|
||||||
},
|
},
|
||||||
localForm: {
|
|
||||||
ticket_: { state_: { type: '' } },
|
|
||||||
...(this.modelValue || {}) }
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
console.log('mode', this.localMode)
|
let that = this;
|
||||||
},
|
if (that.t_id) {
|
||||||
watch: {
|
that.getTid();
|
||||||
localForm: {
|
|
||||||
handler(val) {
|
|
||||||
Object.assign(this.ticket_data, {
|
|
||||||
author: val.author,
|
|
||||||
// 其他需要同步的字段...
|
|
||||||
});
|
|
||||||
},
|
|
||||||
deep: true,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -144,7 +154,6 @@ export default {
|
||||||
}
|
}
|
||||||
if(that.localMode == "add") {
|
if(that.localMode == "add") {
|
||||||
let res = await that.$API.srm.papersecret.create.req(that.localForm);
|
let res = await that.$API.srm.papersecret.create.req(that.localForm);
|
||||||
|
|
||||||
that.localForm.id = res.id;
|
that.localForm.id = res.id;
|
||||||
} else if (that.localMode == "edit") {
|
} else if (that.localMode == "edit") {
|
||||||
await that.$API.srm.papersecret.update.req(that.localForm.id, that.localForm);
|
await that.$API.srm.papersecret.update.req(that.localForm.id, that.localForm);
|
||||||
|
|
|
||||||
|
|
@ -98,14 +98,13 @@
|
||||||
<span v-else>—</span>
|
<span v-else>—</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="所在节点" min-width="60">
|
<el-table-column label="审批信息" width="200">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{scope.row.ticket_.state_.name}}
|
<el-tag :type="actStateEnum[scope.row.ticket_?.act_state]?.type">
|
||||||
</template>
|
{{ actStateEnum[scope.row.ticket_?.act_state]?.text }}
|
||||||
</el-table-column>
|
</el-tag>
|
||||||
<el-table-column label="进行状态" min-width="60">
|
<el-tag type="info" effect="plain">{{ scope.row.ticket_?.state_.name }}</el-tag>
|
||||||
<template #default="scope">
|
|
||||||
{{statusOptions[scope.row.ticket_.state_.type]}}
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" fixed="right" align="center" width="120">
|
<el-table-column label="操作" fixed="right" align="center" width="120">
|
||||||
|
|
@ -114,8 +113,7 @@
|
||||||
link
|
link
|
||||||
size="small"
|
size="small"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="patentEdit(scope.row)"
|
@click="patentShow(scope.row)"
|
||||||
v-auth="'patentinfo.update'"
|
|
||||||
>详情
|
>详情
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-popconfirm
|
<el-popconfirm
|
||||||
|
|
@ -138,7 +136,7 @@
|
||||||
</el-main>
|
</el-main>
|
||||||
</el-container>
|
</el-container>
|
||||||
<el-drawer
|
<el-drawer
|
||||||
:title="drawerTitle[mode]"
|
title="专利审批"
|
||||||
v-model="limitedVisible"
|
v-model="limitedVisible"
|
||||||
:destroy-on-close="true"
|
:destroy-on-close="true"
|
||||||
direction="rtl"
|
direction="rtl"
|
||||||
|
|
@ -148,8 +146,7 @@
|
||||||
<div style="flex: 1; padding-right: 20px; overflow-y: auto;">
|
<div style="flex: 1; padding-right: 20px; overflow-y: auto;">
|
||||||
<PatentForm
|
<PatentForm
|
||||||
:mode="mode"
|
:mode="mode"
|
||||||
v-model="addForm"
|
:t_id="t_id"
|
||||||
:transitions="transitions"
|
|
||||||
@success="()=>{handleQuery(); limitedVisible = false}"
|
@success="()=>{handleQuery(); limitedVisible = false}"
|
||||||
@closed="limitedVisible = false"
|
@closed="limitedVisible = false"
|
||||||
/>
|
/>
|
||||||
|
|
@ -160,25 +157,19 @@
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
import PatentForm from "./patent_form.vue";
|
import PatentForm from "./patent_form.vue";
|
||||||
|
import { actStateEnum, interveneTypeEnum } from "@/utils/enum.js";
|
||||||
export default {
|
export default {
|
||||||
components: { PatentForm},
|
components: { PatentForm},
|
||||||
name: "index",
|
name: "index",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
workflowName:"",
|
actStateEnum, interveneTypeEnum,
|
||||||
workFlowId:'',
|
|
||||||
apiObj: this.$API.srm.patentinfo.list,
|
apiObj: this.$API.srm.patentinfo.list,
|
||||||
selection: [],
|
|
||||||
checkList: [],
|
|
||||||
fileList: [],
|
fileList: [],
|
||||||
transitions:[],
|
|
||||||
timeRange: [],
|
|
||||||
lending_type: "",
|
|
||||||
query: {},
|
query: {},
|
||||||
editId: null,
|
t_id:null,
|
||||||
isSaving: false,
|
|
||||||
limitedVisible: false,
|
limitedVisible: false,
|
||||||
mode: "add",
|
mode: "show",
|
||||||
patentType: {
|
patentType: {
|
||||||
"invention": "发明专利",
|
"invention": "发明专利",
|
||||||
"utility": "实用新型",
|
"utility": "实用新型",
|
||||||
|
|
@ -189,156 +180,53 @@ export default {
|
||||||
'Foreign':'国外申请',
|
'Foreign':'国外申请',
|
||||||
'PCT':'PCT申请',
|
'PCT':'PCT申请',
|
||||||
},
|
},
|
||||||
drawerTitle: {
|
|
||||||
add: "新增专利申密",
|
|
||||||
edit: "审批流",
|
|
||||||
view: "查看专利申密",
|
|
||||||
},
|
|
||||||
statusOptions:{
|
|
||||||
0: "审批中",
|
|
||||||
1: "初始中",
|
|
||||||
2: "已完成",
|
|
||||||
},
|
|
||||||
currentRow: null,
|
|
||||||
//表单数据
|
|
||||||
addForm: {
|
|
||||||
author: "",
|
|
||||||
name: "",
|
|
||||||
type: "",
|
|
||||||
is_public: false,
|
|
||||||
area: null,
|
|
||||||
other_area: null,
|
|
||||||
tech_status: [],
|
|
||||||
tech_file: [],
|
|
||||||
ticket_:null
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted(){
|
|
||||||
let that = this;
|
|
||||||
that.getInit();
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
//添加工作流
|
|
||||||
//渲染工单提交按钮
|
|
||||||
getInit() {
|
|
||||||
let that = this;
|
|
||||||
if(this.addForm.ticket_!==null){
|
|
||||||
this.$API.wf.ticket_.ticketTransitions.req(this.addForm.ticket_).then((res) => {
|
|
||||||
that.transitions = res;
|
|
||||||
})
|
|
||||||
}else{
|
|
||||||
that.$API.wf.workflow.initkey.req("patent").then((res) => {
|
|
||||||
that.initForm = res;
|
|
||||||
that.transitions = res.transitions;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.mode = "add";
|
this.mode = "add";
|
||||||
this.addForm = this.getDefaultForm();
|
this.t_id = null;
|
||||||
this.lending_type = "";
|
|
||||||
this.limitedVisible = true;
|
this.limitedVisible = true;
|
||||||
},
|
},
|
||||||
handleCancel() {
|
|
||||||
this.limitedVisible = false; // 关闭弹窗
|
|
||||||
this.lending_type = ""; // 重置 lending_type
|
|
||||||
this.getDefaultForm()// 清空表单
|
|
||||||
},
|
|
||||||
|
|
||||||
getDefaultForm(){
|
// getDefaultForm(){
|
||||||
return {
|
// return {
|
||||||
name: "",
|
// name: "",
|
||||||
author: "",
|
// author: "",
|
||||||
type: "",
|
// type: "",
|
||||||
is_public: false,
|
// is_public: false,
|
||||||
area: null,
|
// area: null,
|
||||||
other_area: null,
|
// other_area: null,
|
||||||
tech_status: [{ name: "是否进行过科技成果鉴定", status: "", fileList: [] },
|
// tech_status: [{ name: "是否进行过科技成果鉴定", status: "", fileList: [] },
|
||||||
{ name: "是否发表过文章", status: "", fileList: [] },
|
// { name: "是否发表过文章", status: "", fileList: [] },
|
||||||
{ name: "是否参与过展会展出", status: "", fileList: [] },
|
// { name: "是否参与过展会展出", status: "", fileList: [] },
|
||||||
{ name: "是否应用于生产/销售", status: "", fileList: [] },
|
// { name: "是否应用于生产/销售", status: "", fileList: [] },
|
||||||
{ name: "是否参与过技术交流", status: "", fileList: [] }],
|
// { name: "是否参与过技术交流", status: "", fileList: [] }],
|
||||||
tech_file: [ { name: "技术背景材料", status: "", pages: "" },
|
// tech_file: [ { name: "技术背景材料", status: "", pages: "" },
|
||||||
{ name: "技术交底材料", pages: "" },
|
// { name: "技术交底材料", pages: "" },
|
||||||
{ name: "查新检索报告", pages: "" },
|
// { name: "查新检索报告", pages: "" },
|
||||||
{ name: "图或者照片", pages: "" }],
|
// { name: "图或者照片", pages: "" }],
|
||||||
ticket_:null
|
// ticket_:null
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
// 审批流结束之后才可以编辑
|
// 审批流结束之后才可以编辑
|
||||||
patentEdit(row) {
|
patentShow(row) {
|
||||||
this.mode = "view";
|
this.mode = "show";
|
||||||
this.editId = row.id;
|
this.t_id = row.id;
|
||||||
this.limitedVisible = true;
|
this.limitedVisible = true;
|
||||||
this.addForm = Object.assign({}, row);
|
|
||||||
},
|
},
|
||||||
async patentDel(row) {
|
async patentDel(row) {
|
||||||
var id = row.id;
|
var id = row.id;
|
||||||
var res = await this.$API.srm.patentinfo.delete.req(id);
|
var res = await this.$API.srm.patentinfo.delete.req(id);
|
||||||
if (res.err_msg) {
|
|
||||||
this.$message.error(res.err_msg);
|
|
||||||
} else {
|
|
||||||
this.$refs.table.refresh();
|
this.$refs.table.refresh();
|
||||||
this.$message.success("删除成功");
|
this.$message.success("删除成功");
|
||||||
}
|
|
||||||
},
|
},
|
||||||
//搜索
|
//搜索
|
||||||
handleQuery() {
|
handleQuery() {
|
||||||
this.$refs.table.queryData(this.query);
|
this.$refs.table.queryData(this.query);
|
||||||
},
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
|
||||||
.treeMain {
|
|
||||||
height: 280px;
|
|
||||||
overflow: auto;
|
|
||||||
border: 1px solid #dcdfe6;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-scrollbar {
|
|
||||||
width: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-scrollbar-track {
|
|
||||||
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.2);
|
|
||||||
background-color: #fefefe;
|
|
||||||
border-radius: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-scrollbar-thumb {
|
|
||||||
border-radius: 5px;
|
|
||||||
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);
|
|
||||||
background-color: #f5f5f5;
|
|
||||||
}
|
|
||||||
.node rect {
|
|
||||||
stroke: #606266;
|
|
||||||
fill: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.edgePath path {
|
|
||||||
stroke: #606266;
|
|
||||||
fill: #333;
|
|
||||||
stroke-width: 1.5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
g.conditions > rect {
|
|
||||||
fill: #00ffd0;
|
|
||||||
stroke: #000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.el-icon-close {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.left-panel-group {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 6px; /* 按钮之间的间隙,可以调小点 */
|
|
||||||
margin-left: 0; /* 靠左 */
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
<el-main>
|
<el-main>
|
||||||
<el-form :model="localForm" label-width="150px" label-position="left" :rules="rules">
|
<el-form :model="localForm" label-width="150px" label-position="left" :rules="rules">
|
||||||
<el-form-item label="拟申请专利名称" prop="name">
|
<el-form-item label="拟申请专利名称" prop="name">
|
||||||
<el-input v-model="localForm.name" clearable :disabled="localMode ==='view'"></el-input>
|
<el-input v-model="localForm.name" clearable :disabled="localMode ==='show'"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="发明人(设计人)"
|
<el-form-item label="发明人(设计人)"
|
||||||
prop="author"
|
prop="author"
|
||||||
|
|
@ -11,20 +11,20 @@
|
||||||
<el-input v-model="localForm.author" clearable ></el-input>
|
<el-input v-model="localForm.author" clearable ></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="专利类型" prop="type">
|
<el-form-item label="专利类型" prop="type">
|
||||||
<el-select v-model="localForm.type" placeholder="请选择专利类型" :disabled="localMode ==='view'">
|
<el-select v-model="localForm.type" placeholder="请选择专利类型" :disabled="localMode ==='show'">
|
||||||
<el-option label="发明专利" value="invention"></el-option>
|
<el-option label="发明专利" value="invention"></el-option>
|
||||||
<el-option label="实用新型专利" value="utility"></el-option>
|
<el-option label="实用新型专利" value="utility"></el-option>
|
||||||
<el-option label="外观设计专利" value="design"></el-option>
|
<el-option label="外观设计专利" value="design"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="是否公开" prop="is_public">
|
<el-form-item label="是否公开" prop="is_public">
|
||||||
<el-radio-group v-model="localForm.is_public" :disabled="localMode ==='view'">
|
<el-radio-group v-model="localForm.is_public" :disabled="localMode ==='show'">
|
||||||
<el-radio :label="true">是</el-radio>
|
<el-radio :label="true">是</el-radio>
|
||||||
<el-radio :label="false">否</el-radio>
|
<el-radio :label="false">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="拟申请地域">
|
<el-form-item label="拟申请地域">
|
||||||
<el-radio-group v-model="localForm.area" :disabled="localMode ==='view'">
|
<el-radio-group v-model="localForm.area" :disabled="localMode ==='show'">
|
||||||
<el-radio label="国内申请" value="Domestic"></el-radio>
|
<el-radio label="国内申请" value="Domestic"></el-radio>
|
||||||
<el-radio label="国外申请" value="Foreign"></el-radio>
|
<el-radio label="国外申请" value="Foreign"></el-radio>
|
||||||
<el-radio label="PCT申请" value="PCT"></el-radio>
|
<el-radio label="PCT申请" value="PCT"></el-radio>
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
placeholder = "请输入申请的国家"
|
placeholder = "请输入申请的国家"
|
||||||
size = "small"
|
size = "small"
|
||||||
style="margin-top: 10;"
|
style="margin-top: 10;"
|
||||||
:disabled="localMode ==='view'"
|
:disabled="localMode ==='show'"
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="技术状态" prop="tech_status">
|
<el-form-item label="技术状态" prop="tech_status">
|
||||||
|
|
@ -43,7 +43,7 @@
|
||||||
<el-col :span="12" v-for="(item, index) in localForm.tech_status || []" :key="index">
|
<el-col :span="12" v-for="(item, index) in localForm.tech_status || []" :key="index">
|
||||||
<div class="class-row">
|
<div class="class-row">
|
||||||
<span>{{ item.name }}</span>
|
<span>{{ item.name }}</span>
|
||||||
<el-radio-group v-model="item.status" @change="handleStatusChange(item)" style="margin-left: 20px;" :disabled="localMode ==='view'">
|
<el-radio-group v-model="item.status" @change="handleStatusChange(item)" style="margin-left: 20px;" :disabled="localMode ==='show'">
|
||||||
<el-radio label="是">是</el-radio>
|
<el-radio label="是">是</el-radio>
|
||||||
<el-radio label="否">否</el-radio>
|
<el-radio label="否">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
|
|
@ -51,27 +51,32 @@
|
||||||
<div v-if="item.status === '是'" class="upload-section">
|
<div v-if="item.status === '是'" class="upload-section">
|
||||||
<sc-upload-file
|
<sc-upload-file
|
||||||
multiple
|
multiple
|
||||||
:limit="3"
|
:limit="1"
|
||||||
:accept="['.xlsx', '.xls','.pdf','.docx', '.doc', '.jpg', '.png', '.jpeg']"
|
:accept="['.xlsx', '.xls','.pdf','.docx', '.doc', '.jpg', '.png', '.jpeg']"
|
||||||
@success = "(res)=>fileUPSuccess(res, item)"
|
@success = "(res)=>fileUPSuccess(res, item)"
|
||||||
:disabled="localMode ==='view'"
|
:disabled="localMode ==='show'"
|
||||||
>
|
>
|
||||||
<el-button type="primary" size="small" icon="el-icon-upload"> </el-button>
|
<el-button type="primary" size="small" icon="el-icon-upload"> </el-button>
|
||||||
</sc-upload-file>
|
</sc-upload-file>
|
||||||
|
<div v-if="item.file && localMode ==='show'" class="file-list">
|
||||||
|
<el-link type="primary" :href="item.file" target="_blank">
|
||||||
|
{{ item.file.split('/').pop() }}
|
||||||
|
</el-link>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="技术文件" prop="tech_file">
|
<el-form-item label="技术文件" prop="tech_file">
|
||||||
<div class="file-item" v-for="(item, index) in localForm.tech_file || []" :key="index">
|
<div class="file-item" v-for="(item, index) in localForm.tech_file || []" :key="index">
|
||||||
<el-checkbox class="file-checkbox" v-model="item.checked" @change="handleCheckChange(item)" :disabled="localMode ==='view'">
|
<el-checkbox class="file-checkbox" v-model="item.checked" @change="handleCheckChange(item)" :disabled="localMode ==='show'">
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
</el-checkbox>
|
</el-checkbox>
|
||||||
<el-input
|
<el-input
|
||||||
class="page-input"
|
class="page-input"
|
||||||
v-model="item.pages"
|
v-model="item.pages"
|
||||||
placeholder="页数"
|
placeholder="页数"
|
||||||
:disabled="!item.checked || localMode ==='view'"
|
:disabled="!item.checked || localMode ==='show'"
|
||||||
type="number"
|
type="number"
|
||||||
min="0">
|
min="0">
|
||||||
<template v-slot:append>页</template>
|
<template v-slot:append>页</template>
|
||||||
|
|
@ -79,7 +84,7 @@
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-footer v-show="localMode!=='show'">
|
<el-footer>
|
||||||
<ticketd_b
|
<ticketd_b
|
||||||
:workflow_key="'patent'"
|
:workflow_key="'patent'"
|
||||||
:title="ticketTitle"
|
:title="ticketTitle"
|
||||||
|
|
@ -89,7 +94,6 @@
|
||||||
:submit_b_func="submit_b_func"
|
:submit_b_func="submit_b_func"
|
||||||
ref="ticketd_b"
|
ref="ticketd_b"
|
||||||
@success="$emit('success')"
|
@success="$emit('success')"
|
||||||
@colsed="$emit('closed')"
|
|
||||||
/>
|
/>
|
||||||
</el-footer>
|
</el-footer>
|
||||||
</el-main>
|
</el-main>
|
||||||
|
|
@ -109,15 +113,16 @@ import ticketd_b from "@/views/wf/ticketd_b.vue";
|
||||||
import ticketd from '@/views/wf/ticketd.vue'
|
import ticketd from '@/views/wf/ticketd.vue'
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
mode: { type: String, default: "view" }, // add / edit / view
|
mode: {
|
||||||
modelValue: { type: Object, default: () => ({}) },
|
type: String,
|
||||||
|
default: "show"
|
||||||
|
}, // add / edit / view
|
||||||
t_id: {
|
t_id: {
|
||||||
type: String,
|
type: String,
|
||||||
default: null
|
default: null
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
components: {ticketd, ticketd_b},
|
components: {ticketd, ticketd_b},
|
||||||
emits: ["update:modelValue", "submit", "cancel"],
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
ticket_data: {},
|
ticket_data: {},
|
||||||
|
|
@ -126,24 +131,30 @@ export default {
|
||||||
rules: {
|
rules: {
|
||||||
filename: [{ required: true, message: "请输入文件名称", trigger: "blur" }],
|
filename: [{ required: true, message: "请输入文件名称", trigger: "blur" }],
|
||||||
},
|
},
|
||||||
localForm: {
|
localForm:{
|
||||||
ticket_: { state_: { type: '' } },
|
name: "",
|
||||||
...(this.modelValue || {}) }
|
author: "",
|
||||||
|
type: "",
|
||||||
|
is_public: false,
|
||||||
|
area: null,
|
||||||
|
other_area: null,
|
||||||
|
tech_status: [{ name: "是否进行过科技成果鉴定", status: "", fileList: [] },
|
||||||
|
{ name: "是否发表过文章", status: "", fileList: [] },
|
||||||
|
{ name: "是否参与过展会展出", status: "", fileList: [] },
|
||||||
|
{ name: "是否应用于生产/销售", status: "", fileList: [] },
|
||||||
|
{ name: "是否参与过技术交流", status: "", fileList: [] }],
|
||||||
|
tech_file: [ { name: "技术背景材料", status: "", pages: "" },
|
||||||
|
{ name: "技术交底材料", pages: "" },
|
||||||
|
{ name: "查新检索报告", pages: "" },
|
||||||
|
{ name: "图或者照片", pages: "" }],
|
||||||
|
ticket_:null
|
||||||
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
// mounted() {
|
mounted() {
|
||||||
// let that = this;
|
let that = this;
|
||||||
// console.log('666666',that.ticket_data)
|
if (that.t_id) {
|
||||||
// },
|
that.getTid();
|
||||||
watch: {
|
|
||||||
localForm: {
|
|
||||||
handler(val) {
|
|
||||||
Object.assign(this.ticket_data, {
|
|
||||||
author: val.author,
|
|
||||||
// 其他需要同步的字段...
|
|
||||||
});
|
|
||||||
},
|
|
||||||
deep: true,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -152,7 +163,6 @@ export default {
|
||||||
if(that.localForm?.id){
|
if(that.localForm?.id){
|
||||||
that.localMode = "edit";
|
that.localMode = "edit";
|
||||||
}
|
}
|
||||||
console.log('that.localForm',that.localMode, that.localForm)
|
|
||||||
if(that.localMode == "add") {
|
if(that.localMode == "add") {
|
||||||
let res = await that.$API.srm.patentinfo.create.req(that.localForm);
|
let res = await that.$API.srm.patentinfo.create.req(that.localForm);
|
||||||
that.localForm.id = res.id;
|
that.localForm.id = res.id;
|
||||||
|
|
@ -197,18 +207,3 @@ export default {
|
||||||
};
|
};
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
|
||||||
.status-item {
|
|
||||||
margin-bottom: 15px;
|
|
||||||
}
|
|
||||||
.status-row {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
}
|
|
||||||
.upload-section {
|
|
||||||
margin-left: 10px;
|
|
||||||
border-left: 2px solid #eee;
|
|
||||||
padding-left: 10px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
Loading…
Reference in New Issue