Compare commits

..

2 Commits

4 changed files with 167 additions and 337 deletions

View File

@ -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() {

View File

@ -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);

View File

@ -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>

View File

@ -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: {},
@ -127,23 +132,29 @@ export default {
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>