This commit is contained in:
shijing 2025-11-13 11:09:11 +08:00
commit ac0ea5f63f
9 changed files with 685 additions and 328 deletions

View File

@ -162,4 +162,84 @@ patentinfo: {
}
},
},
platform: {
list: {
url: `${config.API_URL}/srm/pf/`,
name: "平台台账列表",
req: async function(data){
return await http.get(this.url, data);
}
},
item: {
name: "论文台账详情",
req: async function(id){
return await http.get( `${config.API_URL}/srm/pf/${id}/`);
}
},
create: {
url: `${config.API_URL}/srm/pf/`,
name: "论文台账创建",
req: async function(data){
return await http.post(this.url, data);
}
},
update: {
name: "论文台账更新",
req: async function(id, data){
return await http.put(
`${config.API_URL}/srm/pf/${id}/`,
data
);
}
},
delete: {
name: "删除论文台账",
req: async function(id){
return await http.delete(`${config.API_URL}/srm/pf/${id}/`);
}
},
},
platstand: {
list: {
url: `${config.API_URL}/srm/ps/`,
name: "平台台账列表",
req: async function(data){
return await http.get(this.url, data);
}
},
item: {
name: "平台台账详情",
req: async function(id){
return await http.get( `${config.API_URL}/srm/ps/${id}/`);
}
},
create: {
url: `${config.API_URL}/srm/ps/`,
name: "平台台账创建",
req: async function(data){
return await http.post(this.url, data);
}
},
update: {
name: "平台台账更新",
req: async function(id, data){
return await http.put(
`${config.API_URL}/srm/ps/${id}/`,
data
);
}
},
delete: {
name: "删除平台台账",
req: async function(id){
return await http.delete(`${config.API_URL}/srm/ps/${id}/`);
}
},
get_name: {
name: "获取平台列表",
req: async function(search=''){
return await http.get(`${config.API_URL}/srm/ps/paper_name/`,{params: { search }});
}
},
},
}

View File

@ -7,8 +7,9 @@
<el-row :gutter="6" style="padding: 10px">
<el-col>
<el-card
header="率"
header="运率"
style="border-radius: 5px; box-shadow: none"
:header-style="{fontSize: '30px', fontWeight: 'bold'}"
>
<el-col v-auth="'run_rate.view'">
<el-card
@ -54,6 +55,50 @@
</div>
</el-card>
</el-col>
<el-col v-auth="'run_rate.view'">
<el-card
header="预热中心温度投运率"
style="border-radius: 5px; box-shadow: none" >
<div class="itemsWrap">
<el-form :inline="true" size="small" @submit.prevent>
<el-form-item label="时间范围">
<el-date-picker
v-model="dateRange"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="YYYY-MM-DD">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleSearch">搜索</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</el-col>
<el-col v-auth="'run_rate.view'">
<el-card
header="出磨温度投运率"
style="border-radius: 5px; box-shadow: none" >
<div class="itemsWrap">
<el-form :inline="true" size="small" @submit.prevent>
<el-form-item label="时间范围">
<el-date-picker
v-model="dateRange5"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="YYYY-MM-DD">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleSearch5">搜索</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</el-col>
</el-card>
</el-col>
<el-col>
@ -83,50 +128,6 @@
</div>
</el-card>
</el-col>
<el-col v-auth="'run_rate.view'">
<el-card
header="预热中心温度采集率"
style="border-radius: 5px; box-shadow: none" >
<div class="itemsWrap">
<el-form :inline="true" size="small" @submit.prevent>
<el-form-item label="时间范围">
<el-date-picker
v-model="dateRange"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="YYYY-MM-DD">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleSearch">搜索</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</el-col>
<el-col v-auth="'run_rate.view'">
<el-card
header="出磨温度采集率"
style="border-radius: 5px; box-shadow: none" >
<div class="itemsWrap">
<el-form :inline="true" size="small" @submit.prevent>
<el-form-item label="时间范围">
<el-date-picker
v-model="dateRange5"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="YYYY-MM-DD">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleSearch5">搜索</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</el-col>
</el-card>
</el-col>
</el-row>

View File

@ -53,7 +53,6 @@
<el-checkbox label="查阅"></el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-form>
<el-footer>
<ticketd_b

View File

@ -17,8 +17,7 @@
:multiple="false"
:limit="1"
:disabled="localMode ==='show'"
:accept="['.xlsx', '.xls','.pdf','.docx', '.doc', '.jpg', '.png', '.jpeg']"
@success = "fileUPSuccess"
accept=".pdf,.jpg,.png,.jpeg"
>
<el-button type="primary" icon="el-icon-upload" :disabled="localMode ==='show'"> </el-button>
</sc-upload-file>

View File

@ -135,7 +135,7 @@
</scTable>
</el-main>
</el-container>
<el-drawer :title="titleMap[type] " v-model="limitedVisible" size="50%">
<el-drawer title="论文台账" v-model="limitedVisible" size="50%">
<el-form
:model="addForm"
:rules="rules"

View File

@ -6,13 +6,12 @@
type="primary"
icon="el-icon-plus"
@click="handleAdd"
v-auth="'PaperSe.create'"
>新增</el-button>
</div>
<!-- <div class="right-panel">
<div class="right-panel">
<el-input
v-model="query.paper_name"
placeholder="发表论文名称"
v-model="query.search"
placeholder="所属部门"
clearable
@keyup.enter="handleQuery"
></el-input>
@ -21,11 +20,16 @@
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div> -->
</div>
</el-header>
<el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id">
<el-table-column label="#" type="index"></el-table-column>
<el-table-column
label="名称"
prop="name"
min-width="60"
></el-table-column>
<el-table-column
label="日期"
prop="p_date"
@ -65,18 +69,27 @@
prop="condition"
min-width="60"
></el-table-column>
<el-table-column label="审批信息" width="200">
<template #default="scope">
<el-tag :type="actStateEnum[scope.row.ticket_?.act_state]?.type">
{{ actStateEnum[scope.row.ticket_?.act_state]?.text }}
</el-tag>
<el-tag type="info" effect="plain">{{ scope.row.ticket_?.state_.name }}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="120">
<template #default="scope">
<el-button
link
size="small"
type="primary"
@click="paperseEdit(scope.row)"
@click="handleShow(scope.row)"
>详情
</el-button>
<el-popconfirm
title="确定删除吗?"
@confirm="papersetDel(scope.row)"
@confirm="handleDel(scope.row)"
>
<template #reference>
<el-button
@ -94,7 +107,7 @@
</el-main>
</el-container>
<el-drawer
:title="drawerTitle[mode]"
title="平台台账"
v-model="limitedVisible"
:destroy-on-close="true"
direction="rtl"
@ -102,10 +115,9 @@
>
<div style="display: flex; height: calc(100% - 60px);">
<div style="flex: 1; padding-right: 20px; overflow-y: auto;">
<PaperForm
<Plat
:mode="mode"
v-model="addForm"
:transitions="transitions"
:t_id="t_id"
@success="()=>{handleQuery(); limitedVisible = false}"
@closed="limitedVisible = false"
/>
@ -115,174 +127,43 @@
</template>
<script>
import PaperForm from "./paperse_form.vue";
import Plat from "./plat_form.vue";
import { actStateEnum, interveneTypeEnum } from "@/utils/enum.js";
export default {
components: { PaperForm},
components: { Plat},
name: "index",
data() {
return {
workflowName:"",
workFlowId:'',
apiObj: this.$API.srm.papersecret.list,
selection: [],
checkList: [],
fileList: [],
transitions:[],
timeRange: [],
lending_type: "",
actStateEnum, interveneTypeEnum,
apiObj: this.$API.srm.platform.list,
query: {},
editId: null,
isSaving: false,
limitedVisible: false,
mode: "add",
drawerTitle: {
add: "新增论文申密",
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
},
mode: "show",
t_id:null,
};
},
mounted(){
let that = this;
that.getInit();
},
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() {
this.mode = "add";
this.addForm = this.getDefaultForm();
this.lending_type = "";
this.t_id = null;
this.limitedVisible = true;
},
handleCancel() {
this.limitedVisible = false; //
this.lending_type = ""; // lending_type
this.getDefaultForm()//
},
getDefaultForm(){
return {
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
}
},
//
paperseEdit(row) {
this.mode = "view";
this.editId = row.id;
handleShow(row) {
this.mode = "show";
this.t_id = row.id;
this.limitedVisible = true;
this.addForm = Object.assign({}, row);
},
async papersetDel(row) {
async handleDel(row) {
var id = row.id;
var res = await this.$API.srm.papersecret.delete.req(id);
if (res.err_msg) {
this.$message.error(res.err_msg);
} else {
var res = await this.$API.srm.platform.delete.req(id);
this.$refs.table.refresh();
this.$message.success("删除成功");
}
},
//
handleQuery() {
this.$refs.table.queryData(this.query);
},
},
};
</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

@ -2,77 +2,55 @@
<el-container>
<el-main>
<el-form :model="localForm" label-width="150px" label-position="left" :rules="rules">
<el-form-item label="拟发表论文名称" prop="paper_name">
<el-input v-model="localForm.paper_name" clearable :disabled="localMode ==='view'"></el-input>
<el-form-item label="名称" prop="name">
<el-input v-model="localForm.name" clearable :disabled="localMode ==='show'"></el-input>
</el-form-item>
<el-form-item label="拟投期刊名称" prop="publication_name">
<el-input v-model="localForm.publication_name" clearable :disabled="localMode ==='view'"></el-input>
</el-form-item>
<el-form-item label="作者" prop="author" >
<el-input v-model="localForm.author" clearable ></el-input>
</el-form-item>
<el-form-item label="拟发表文章类型" prop="paper_type">
<el-select v-model="localForm.paper_type" placeholder="请选择拟发表文章类型" :disabled="localMode ==='view'">
<el-option label="研究论文" value="研究论文"></el-option>
<el-option label="综述" value="综述"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否为中文核心" prop="is_chinese_core">
<el-radio-group v-model="localForm.is_chinese_core" :disabled="localMode ==='view'">
<el-radio :label="true"></el-radio>
<el-radio :label="false"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="是否被SCI/EI收录" prop="is_sci">
<el-radio-group v-model="localForm.is_sci" :disabled="localMode ==='view'">
<el-radio :label="true"></el-radio>
<el-radio :label="false"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="技术状态" prop="tech_status">
<el-row>
<el-col :span="12" v-for="(item, index) in localForm.tech_status || []" :key="index">
<div class="class-row">
<span>{{ item.name }}</span>
<el-radio-group v-model="item.status" @change="handleStatusChange(item)" style="margin-left: 20px;" :disabled="localMode ==='view'">
<el-radio label="是"></el-radio>
<el-radio label="否"></el-radio>
</el-radio-group>
</div>
<div v-if="item.status === '是'" class="upload-section">
<sc-upload-file
multiple
:limit="3"
:accept="['.xlsx', '.xls','.pdf','.docx', '.doc', '.jpg', '.png', '.jpeg']"
@success = "(res)=>fileUPSuccess(res, item)"
:disabled="localMode ==='view'"
<el-form-item label="日期" prop="p_date">
<el-date-picker
v-model="localForm.p_date"
type="date"
align="right"
value-format="YYYY-MM-DD"
unlink-panels
placeholder="选择日期"
:disabled="localMode==='show'"
>
<el-button type="primary" size="small" icon="el-icon-upload"> </el-button>
</sc-upload-file>
</div>
</el-col>
</el-row>
</el-date-picker>
</el-form-item>
<el-form-item label="技术文件" prop="tech_file">
<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'">
{{ item.name }}
</el-checkbox>
<el-form-item label="归口部门" prop="p_dept">
<el-input v-model="localForm.p_dept" clearable :disabled="localMode ==='show'"></el-input>
</el-form-item>
<el-form-item label="建设期" prop="const">
<el-input v-model="localForm.const" clearable ></el-input>
</el-form-item>
<el-form-item label="市级平台" prop="city_p">
<el-radio-group v-model="localForm.city_p" :disabled="localMode ==='show'">
<el-radio :label="true"></el-radio>
<el-radio :label="false"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="省级平台" prop="province_p">
<el-radio-group v-model="localForm.province_p" :disabled="localMode ==='show'">
<el-radio :label="true"></el-radio>
<el-radio :label="false"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="负责人" prop="charge">
<el-input v-model="localForm.charge" clearable ></el-input>
</el-form-item>
<el-form-item label="平台基本情况与目标绩效" prop="condition">
<el-input
class="page-input"
v-model="item.pages"
placeholder="页/张数"
:disabled="!item.checked || localMode ==='view'"
type="number"
min="0">
<template v-slot:append>/</template>
</el-input>
</div>
type="textarea"
v-model="localForm.condition"
placeholder="请输入平台基本情况与目标绩效"
rows = '3'
clearable
></el-input>
</el-form-item>
</el-form>
<el-footer v-show="localMode!=='show'">
<el-footer>
<ticketd_b
:workflow_key="'wf_paperse'"
:workflow_key="'wf_plat'"
:title="ticketTitle"
:t_id="localForm.id"
:ticket_="localForm.ticket_"
@ -80,7 +58,6 @@
:submit_b_func="submit_b_func"
ref="ticketd_b"
@success="$emit('success', localMode)"
@colsed="$emit('closed')"
/>
</el-footer>
</el-main>
@ -100,37 +77,31 @@ import ticketd_b from "@/views/wf/ticketd_b.vue";
import ticketd from '@/views/wf/ticketd.vue'
export default {
props: {
mode: { type: String, default: "view" }, // add / edit / view
modelValue: { type: Object, default: () => ({}) },
mode: { type: String, default: "show" }, // add / edit / show
t_id: {
type: String,
default: null
},
},
components: {ticketd, ticketd_b},
emits: ["update:modelValue", "submit", "cancel"],
data() {
return {
ticket_data: {},
ticketTitle: "论文申密申请",
ticketTitle: "平台审批",
localMode : this.mode,
rules: {
filename: [{ required: true, message: "请输入文件名称", trigger: "blur" }],
},
localForm: {
ticket_: { state_: { type: '' } },
...(this.modelValue || {}) }
localForm: {}
};
},
watch: {
localForm: {
handler(val) {
Object.assign(this.ticket_data, {
author: val.author,
// ...
});
},
deep: true,
mounted(){
let that=this
if(that.t_id){
that.getTid();
}else{
that.localMode = "add";
that.localForm.belong_dept = that.$TOOL.data.get("USER_INFO").belong_dept;
}
},
methods: {
@ -140,17 +111,16 @@ export default {
that.localMode = "edit";
}
if(that.localMode == "add") {
let res = await that.$API.srm.papersecret.create.req(that.localForm);
let res = await that.$API.srm.platform.create.req(that.localForm);
that.localForm.id = res.id;
} else if (that.localMode == "edit") {
await that.$API.srm.papersecret.update.req(that.localForm.id, that.localForm);
await that.$API.srm.platform.update.req(that.localForm.id, that.localForm);
}
},
getTid (){
var that = this;
if (that.t_id) {
that.$API.srm.papersecret.item.req(that.t_id).then(res=>{
that.$API.srm.platform.item.req(that.t_id).then(res=>{
that.localForm = res;
if(res.ticket_?.state_?.type == 1 && res.create_by == that.$TOOL.data.get("USER_INFO").id ) {
that.localMode = "edit";
@ -160,42 +130,6 @@ export default {
})
}
},
fileUPSuccess(res, item) {
if(!item.fileList) {
item.fileList = []
}
item.fileList.push(res.path)
item.file = res.path
},
handleCheckChange(item) {
//
if (!item.checked) {
item.pages = '';
}
},
//
handleStatusChange(item) {
if (item.status === "否") {
item.file = "";
item.fileList = [];
}
},
},
};
</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>

View File

@ -0,0 +1,463 @@
<template>
<el-container>
<el-header>
<div class="left-panel-group">
<el-button
type="primary"
icon="el-icon-plus"
@click="handleAdd"
></el-button>
</div>
<div class="right-panel">
<el-input
v-model="query.search"
placeholder="平台名称"
clearable
@keyup.enter="handleQuery"
></el-input>
<!-- <el-select
v-model="query.name"
placeholder="选择名称"
clearable
filterable
:loading="loading"
@visible-change="handlePatentChange"
>
<el-option
v-for="item in platlist"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select> -->
<el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div>
</el-header>
<el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="红头发文号/公示页"
prop="number"
min-width="100"
></el-table-column>
<el-table-column
label="名称"
prop="plat_name"
min-width="100"
></el-table-column>
<el-table-column
label="平台类型"
prop="p_type"
min-width="100"
></el-table-column>
<el-table-column
label="单位"
prop="org"
min-width="100">
</el-table-column>
<el-table-column
label="建设期(年)"
prop="period"
min-width="100">
</el-table-column>
<el-table-column
label="平台资金(元)"
prop="plat_amount"
min-width="100"
></el-table-column>
<el-table-column
label="子项目"
prop="son_pro"
min-width="100"
></el-table-column>
<el-table-column
label="成果"
prop="achieve"
min-width="100"
></el-table-column>
<el-table-column
label="完成情况"
prop="finished"
min-width="100"
></el-table-column>
<el-table-column
label="建成绩效完成情况"
prop="completion"
min-width="100"
></el-table-column>
<el-table-column label="市级平台" prop="city_p" mim-width="60">
<template #default="scope">
<span :style="{color: scope.row.city_p ? '#67C23A' : '#F56C6C'}">
{{ scope.row.city_p ? '是' : '否'}}
</span>
</template>
</el-table-column>
<el-table-column label="省级平台" prop="province_p" mim-width="60">
<template #default="scope">
<span :style="{color: scope.row.province_p ? '#67C23A' : '#F56C6C'}">
{{ scope.row.province_p ? '是' : '否'}}
</span>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="250">
<template #default="scope">
<el-button
link
size="small"
type="primary"
@click="filerecordEidt(scope.row)"
>编辑
</el-button>
<el-popconfirm
title="确定删除吗?"
@confirm="filerecordDel(scope.row)"
>
<template #reference>
<el-button
link
size="small"
type="danger"
v-auth="'ps.delete'"
>删除</el-button
>
</template>
</el-popconfirm>
</template>
</el-table-column>
</scTable>
</el-main>
</el-container>
<el-drawer :title="titleMap[type] " v-model="limitedVisible" size="50%">
<el-form
:model="addForm"
:rules="rules"
ref="addForm"
label-width="100px"
label-position="left"
>
<el-form-item label="红头发文号/公示页" prop="number">
<el-input v-model="addForm.number" clearable></el-input>
</el-form-item>
<el-form-item label="平台名称" prop="platinfo">
<xtSelect
:apiObj="apiObjM2"
v-model = "addForm.name"
style="width: 300px;"
placeholder="选择平台名称"
>
<el-table-column label="发文号" prop="number"></el-table-column>
<el-table-column label="平台名称" prop="name"></el-table-column>
</xtSelect>
</el-form-item>
<el-form-item label="平台类型" prop="p_type">
<el-input v-model="addForm.p_type" clearable></el-input>
<!-- <el-select
v-model="addForm.patent"
placeholder="请选择"
clearable
:loading="loading"
@visible-change="handlePatentChange">
<el-option
v-for="item in platlist"
:key="item.name"
:value="item.id"
:label="item.name"></el-option>
</el-select> -->
</el-form-item>
<el-form-item label="单位" prop="org">
<el-input v-model="addForm.org" clearable></el-input>
</el-form-item>
<el-form-item label="建设期" prop="period">
<el-input v-model="addForm.period" clearable></el-input>
</el-form-item>
<el-form-item label="代理人" prop="agent" label-width="120px">
<el-input v-model="addForm.agent" clearable></el-input>
</el-form-item>
<el-form-item label="归属平台" prop="affiliated_platforms">
<el-input v-model="addForm.affiliated_platforms" clearable></el-input>
</el-form-item>
<el-form-item label="归属项目" prop="affiliated_projects" >
<el-input v-model="addForm.affiliated_projects" clearable></el-input>
</el-form-item>
<el-form-item label="申请日" prop="application_date" >
<el-date-picker
v-model="addForm.application_date"
type="date"
align="right"
value-format="YYYY-MM-DD"
unlink-panels
palceholder="选择日期"
></el-date-picker>
</el-form-item>
<el-form-item label="授权日" prop="authorization_date" >
<el-date-picker
v-model="addForm.authorization_date"
type="date"
align="right"
value-format="YYYY-MM-DD"
unlink-panels
palceholder="选择日期"
></el-date-picker>
</el-form-item>
<el-form-item label="有效年限" prop="validity_years" >
<el-input v-model="addForm.validity_years" type="number" min="0" clearable></el-input>
</el-form-item>
<el-form-item label="年费缴纳" prop="annuity_paid" >
<el-input-number
v-model="addForm.annuity_paid"
:precision="2"
:step="0.01"
:min="0"
style="width: 200px"
controls-position="right"></el-input-number>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="addForm.status" placeholder="请选择" clearable>
<el-option
v-for="(label, value) in statusOptions"
:key="value"
:label="label"
:value="value"/>
</el-select>
</el-form-item>
<el-form-item label="报奖情况" prop="award_info" >
<el-input
v-model="addForm.award_info"
clearable type="textarea"
palaceholder="请输入内容"
rows="3">
></el-input>
</el-form-item>
<el-form-item label="奖金发放" prop="bonus_amount" >
<el-input-number
v-model="addForm.bonus_amount"
:precision="2"
:step="0.01"
:min="0"
style="width: 200px"
controls-position="right"></el-input-number>
</el-form-item>
</el-form>
<template #footer>
<el-button
v-auth="'ps.create'"
v-if="type !== 'show'"
type="primary"
:loading="isSaving"
@click="submitHandle()"
> </el-button
>
</template>
</el-drawer>
</template>
<script>
export default {
name: "index",
data() {
return {
workflowName:"",
workFlowId:'',
loading: false,
apiObj: this.$API.srm.platstand.list,
apiObjM2: this.$API.ofm.platform.list,
platlist: [],
statusOptions: {
"not_disclosed":"未公开" ,
"under_examination":"实审中",
"first_office_action":"一通",
"second_office_action":"二通",
"rejected":"驳回",
"reexamination":"复审",
"authorized":"授权"
},
query: {},
editId: null,
isSaving: false,
limitedVisible: false,
limitedWatch: false,
type: "add",
titleMap: {
add: "新增",
edit: "编辑",
show: "查看",
},
//
addForm: {
volume_number: null,
application_number: null,
patent: null,
pc_type: null,
organization: null,
inventors: "",
agent: "",
affiliated_platforms: "",
affiliated_projects: "",
application_date: "",
authorization_date: "",
validity_years: "",
annuity_paid: "",
status: "",
award_info: "",
bonus_amount: "",
},
};
},
methods: {
formatPcType(row, column, cellValue) {
const map = {
'invention': '发明专利',
'utility': '实用新型',
'design': '外观设计'
};
return map[cellValue] || cellValue;
},
handleAdd() {
this.type = "add";
this.addForm = this.getDefaultForm();
this.limitedVisible = true;
},
handlePatentChange(visible){
if(visible){
this.get_patentList();
}
},
async get_patentList() {
const res = await this.$API.srm.platstand.get_name.req();
this.platlist = res;
},
handleAdd_outer() {
this.addForm = this.getDefaultForm();
this.type = "add";
this.limitedVisible = true;
this.lending_type = "outer";
this.addForm.is_lending = true;
},
handleCancel() {
this.limitedVisible = false; //
this.lending_type = ""; // lending_type
this.getDefaultForm()//
},
submitHandle() {
let that = this;
that.isSaving = true;
that.submit();
},
getDefaultForm(){
return {
volume_number: null,
application_number: null,
patent: null,
pc_type: null,
organization: null,
inventors: "",
agent: "",
affiliated_platforms: "",
affiliated_projects: "",
application_date: "",
authorization_date: "",
validity_years: "",
annuity_paid: "",
status: "",
award_info: "",
bonus_amount: "",
}
},
async submit() {
let that = this;
let res = null;
try {
if (that.type === "add") {
res = await that.$API.srm.patentrecord.create.req(that.addForm);
} else {
res = await that.$API.srm.patentrecord.update.req(
that.editId,
that.addForm
);
}
that.isSaving = false;
that.limitedVisible = false;
that.$refs.table.refresh();
} catch (e) {
that.isSaving = false;
}
},
//
filerecordEidt(row) {
this.type = "edit";
this.editId = row.id;
this.limitedVisible = true;
this.addForm = Object.assign({}, row);
},
async filerecordDel(row) {
var id = row.id;
var res = await this.$API.srm.platstand.delete.req(id);
if (res.err_msg) {
this.$message.error(res.err_msg);
} else {
this.$refs.table.refresh();
this.$message.success("删除成功");
}
},
//
handleQuery() {
this.$refs.table.queryData(this.query);
},
},
};
</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>