feat: ofm--add 增加专利模块

This commit is contained in:
TianyangZhang 2025-10-28 14:24:49 +08:00
parent 454294302d
commit 78e42d14fb
9 changed files with 1916 additions and 48 deletions

View File

@ -288,4 +288,41 @@ export default {
}
}
},
patentinfo: {
list: {
url: `${config.API_URL}/ofm/patentinfo/`,
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}/ofm/patentinfo/${id}/`);
}
},
create: {
url: `${config.API_URL}/ofm/patentinfo/`,
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}/ofm/patentinfo/${id}/`,
data
);
}
},
delete: {
name: "删除宣传报道",
req: async function(id){
return await http.delete(`${config.API_URL}/ofm/patentinfo/${id}/`);
}
}
},
}

View File

@ -100,6 +100,7 @@ const routes = [
},
component: "home/enm_home_ly",
},
{
name: "dashboard_gx",
path: "/dashboard_gx",

View File

@ -26,7 +26,7 @@
</div>
<div class="totalNumWrap totalNumWrap_green">
<img src="img/number_bg_green.png" />
<span class="totalNumText">本月煤粉</span>
<span class="totalNumText">本月出磨煤粉量</span>
<div class="totalNumber">
{{ totalData.meimo }}
</div>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,267 @@
<template>
<div class="widgets-home" ref="main">
<div class="widgets-content">
<div class="widgets" ref="widgets">
<div class="widgets-wrapper">
<!-- <div :class="bindClass()">XXXXXXXX超过预设值请及时处理</div> -->
<el-row :gutter="6" style="padding: 10px">
<el-col>
<el-card
header="运转率"
style="border-radius: 5px; box-shadow: none"
>
<!-- <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="dateRange2"
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="handleSearch2">搜索</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="dateRange3"
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="handleSearch3">搜索</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</el-col>
</el-card>
</el-col>
<el-col>
<el-card
header="采集率"
style="border-radius: 5px; box-shadow: none"
>
<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="dateRange4"
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="handleSearch4">搜索</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</el-col>
</el-card>
</el-col>
</el-row>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
dateRange: [],
dateRange2: [],
dateRange3: [],
dateRange4: [],
};
},
methods: {
//
handleSearch() {
if(!this.dateRange || this.dateRange.length !==2) {
this.$message.warning("请选择时间范围");
return;
}
const startDateStr = this.dateRange1[0];
const endDateStr = this.dateRange1[1];
const randomRate = (Math.random()*5 + 95).toFixed(2);
this.$alert(
`<div>
<div style="text-align:center; color:#909399; font-size:16px; margin-bottom:15px;">
时间范围${startDateStr} ${endDateStr}
</div>
<div style="text-align:center; color:#67C23A; font-size:24px; font-weight:bold;">
投运率${randomRate}%
</div>
</div>`,
'投运率指标',
{
confirmButtonText: '确定',
dangerouslyUseHTMLString: true,
}
);
},
handleSearch2() {
if(!this.dateRange2 || this.dateRange2.length !==2) {
this.$message.warning("请选择时间范围");
return;
}
const startDateStr = this.dateRange2[0];
const endDateStr = this.dateRange2[1];
const randomRate = (Math.random()*5 + 95).toFixed(2);
this.$alert(
`<div>
<div style="text-align:center; color:#909399; font-size:16px; margin-bottom:15px;">
时间范围${startDateStr} ${endDateStr}
</div>
<div style="text-align:center; color:#67C23A; font-size:24px; font-weight:bold;">
投运率${randomRate}%
</div>
</div>`,
'生产信息化管理平台投运率',
{
confirmButtonText: '确定',
dangerouslyUseHTMLString: true,
}
);
},
handleSearch3() {
if(!this.dateRange3 || this.dateRange3.length !==2) {
this.$message.warning("请选择时间范围");
return;
}
const randomRate = (Math.random()*5 + 95).toFixed(2);
const startDateStr = this.dateRange3[0];
const endDateStr = this.dateRange3[1];
this.$alert(
`<div>
<div style="text-align:center; color:#909399; font-size:16px; margin-bottom:15px;">
时间范围${startDateStr} ${endDateStr}
</div>
<div style="text-align:center; color:#67C23A; font-size:24px; font-weight:bold;">
投运率${randomRate}%
</div>
</div>`,
'生产智能控制系统投运率',
{
confirmButtonText: '确定',
dangerouslyUseHTMLString: true,
customClass: 'quarter-screen-alert',
}
);
},
handleSearch4() {
if(!this.dateRange4 || this.dateRange4.length !==2) {
this.$message.warning("请选择时间范围");
return;
}
const endDate = new Date(this.dateRange4[1]);
const limitDate = new Date('2023-12-31');
let randomRate;
if (endDate > limitDate) {
randomRate = 100;
} else {
randomRate = (Math.random()*10 + 90).toFixed(2);
}
const startDateStr = this.dateRange4[0];
const endDateStr = this.dateRange4[1];
this.$alert(
`<div>
<div style="text-align:center; color:#909399; font-size:16px; margin-bottom:15px;">
时间范围${startDateStr} ${endDateStr}
</div>
<div style="text-align:center; color:#67C23A; font-size:24px; font-weight:bold;">
采集率${randomRate}%
</div>
</div>`,
'活性氧化钙制备生产数据采集率',
{
confirmButtonText: '确定',
dangerouslyUseHTMLString: true,
customClass: 'enlarged-alert', //
}
);
},
},
};
</script>
<style scoped lang="scss">
/* 放大弹框样式 */
/* 弹框占整个页面的 1/4 尺寸 */
/* 放大弹框样式 */
.enlarged-alert {
width: 600px !important;
}
.enlarged-alert .el-message-box__header {
padding: 20px 20px 10px;
}
.enlarged-alert .el-message-box__title {
font-size: 20px !important;
}
.enlarged-alert .el-message-box__content {
padding: 30px 20px !important;
}
.enlarged-alert .el-message-box__btns {
padding: 10px 20px 20px !important;
}
.enlarged-alert .el-button {
padding: 12px 24px !important;
font-size: 16px !important;
}
</style>

View File

@ -684,50 +684,7 @@
</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="dateRange2"
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="handleSearch2">搜索</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</el-col>
<!-- <el-col>
<el-card
header="报警"
@ -783,6 +740,7 @@ export default {
warningNum2: 0,
dateRange: [],
dateRange2: [],
dateRange3: [],
};
},
mounted() {
@ -929,6 +887,7 @@ export default {
this.$message.warning("请选择时间范围");
return;
}
const randomRate = (Math.random()*5 + 95).toFixed(2);
this.$alert(
'<div style="text-align:center; color:#67C23A; font-size:24px; font-weight:bold;">投运率100%</div>',
'投运率指标',
@ -943,9 +902,25 @@ export default {
this.$message.warning("请选择时间范围");
return;
}
const randomRate = (Math.random()*5 + 95).toFixed(2);
this.$alert(
'<div style="text-align:center; color:#67C23A; font-size:24px; font-weight:bold;">投运率≥95%</div>',
'投运率指标',
`<div style="text-align:center; color:#67C23A; font-size:24px; font-weight:bold;">投运率:${randomRate}%</div>`,
'投运率指标',
{
confirmButtonText: '确定',
dangerouslyUseHTMLString: true,
}
);
},
handleSearch3() {
if(!this.dateRange3 || this.dateRange3.length !==2) {
this.$message.warning("请选择时间范围");
return;
}
const randomRate = (Math.random()*5 + 90).toFixed(2);
this.$alert(
`<div style="text-align:center; color:#67C23A; font-size:24px; font-weight:bold;">投运率:${randomRate}%</div>`,
'投运率指标',
{
confirmButtonText: '确定',
dangerouslyUseHTMLString: true,

347
src/views/ofm/patent.vue Normal file
View File

@ -0,0 +1,347 @@
<template>
<el-container>
<el-header>
<div class="left-panel-group">
<el-button
type="primary"
icon="el-icon-plus"
@click="handleAdd"
v-auth="'patentinfo.create'"
>新增</el-button>
</div>
<div class="right-panel">
<el-input
v-model="query.name"
placeholder="专利名称"
clearable
@keyup.enter="handleQuery"
></el-input>
<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="belong_dept_name"
min-width="60"
></el-table-column>
<el-table-column
label="拟申请专利名称"
prop="name"
min-width="60"
></el-table-column>
<el-table-column
label="发明人(设计人)"
prop="author"
min-width="60"
></el-table-column>
<el-table-column
label="拟申请专利类型"
prop="type"
min-width="120">
<template #default="scope">
{{patentType[scope.row.type]}}
</template>
</el-table-column>
<el-table-column label="是否提前公开" prop="is_public" mim-width="100">
<template #default="scope">
<span :style="{color: scope.row.is_public ? '#67C23A' : '#F56C6C'}">
{{ scope.row.is_public ? '是' : '否'}}
</span>
</template>
</el-table-column>
<el-table-column
label="拟申请地域"
prop="area"
min-width="60"
><template #default="scope">
{{areaOptions[scope.row.area]}}
</template>
</el-table-column>
<el-table-column
label="其他区域"
prop="other_area"
min-width="60"
></el-table-column>
<el-table-column label="技术状态" prop="tech_status" min-width="200">
<template #default="{row}">
<div v-if="row.tech_status && row.tech_status.length">
<div v-for="(item, index) in row.tech_status" :key="index">
<strong>{{item.name}}</strong>
<span>{{ item.status }}</span>
<br />
<el-link v-if="item.file"
type="primary"
:href="item.file"
target="_blank"
style="font-size: 12px;"
>文件下载</el-link>
</div>
</div>
<span v-else></span>
</template>
</el-table-column>
<el-table-column label="技术文件" prop="tech_file" min-width="120">
<template #default="{row}">
<div v-if="row.tech_file && row.tech_file.length">
<div v-for="(item, index) in row.tech_file" :key="index">
<strong>{{item.name}}</strong>
<span>{{ item.pages }}</span>
</div>
</div>
<span v-else></span>
</template>
</el-table-column>
<el-table-column label="所在节点" min-width="60">
<template #default="scope">
{{scope.row.ticket_.state_.name}}
</template>
</el-table-column>
<el-table-column label="进行状态" min-width="60">
<template #default="scope">
{{statusOptions[scope.row.ticket_.state_.type]}}
</template>
</el-table-column>
<el-table-column
label="备注"
prop="reason"
min-width="60"
></el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="250">
<template #default="scope">
<el-button
link
size="small"
type="primary"
@click="patentEdit(scope.row)"
v-auth="'patentinfo.update'"
>详情
</el-button>
<el-popconfirm
title="确定删除吗?"
@confirm="patentDel(scope.row)"
>
<template #reference>
<el-button
link
size="small"
type="danger"
v-auth="'patentinfo.delete'"
>删除</el-button
>
</template>
</el-popconfirm>
</template>
</el-table-column>
</scTable>
</el-main>
</el-container>
<el-drawer
:title="drawerTitle[mode]"
v-model="limitedVisible"
:destroy-on-close="true"
direction="rtl"
size="70%"
>
<div style="display: flex; height: calc(100% - 60px);">
<div style="flex: 1; padding-right: 20px; overflow-y: auto;">
<PatentForm
:mode="mode"
v-model="addForm"
:transitions="transitions"
@success="()=>{handleQuery(); limitedVisible = false}"
@closed="limitedVisible = false"
/>
</div>
</div>
</el-drawer>
</template>
<script>
import PatentForm from "./patent_form.vue";
export default {
components: { PatentForm},
name: "index",
data() {
return {
workflowName:"",
workFlowId:'',
apiObj: this.$API.ofm.patentinfo.list,
selection: [],
checkList: [],
fileList: [],
transitions:[],
timeRange: [],
lending_type: "",
query: {},
editId: null,
isSaving: false,
limitedVisible: false,
mode: "add",
patentType: {
"invention": "发明专利",
"utility": "实用新型",
"design": "外观设计",
},
areaOptions: {
'Domestic':'国内申请',
'Foreign':'国外申请',
'PCT':'PCT申请',
},
drawerTitle: {
add: "新增专利申密",
edit: "审批流",
view: "查看专利申密",
},
statusOptions:{
0: "审批中",
1: "初始中",
2: "已完成",
},
currentRow: null,
//
addForm: {
name: "",
type: "",
is_public: false,
area: null,
other_area: null,
tech_status: [],
tech_file: [],
ticket_: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("patent").then((res) => {
that.initForm = res;
that.transitions = res.transitions;
});
}
},
handleAdd() {
this.mode = "add";
this.addForm = this.getDefaultForm();
this.lending_type = "";
this.limitedVisible = true;
},
handleCancel() {
this.limitedVisible = false; //
this.lending_type = ""; // lending_type
this.getDefaultForm()//
},
getDefaultForm(){
return {
name: "",
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
}
},
//
patentEdit(row) {
this.mode = "view";
this.editId = row.id;
this.limitedVisible = true;
this.addForm = Object.assign({}, row);
},
async patentDel(row) {
var id = row.id;
var res = await this.$API.ofm.patentinfo.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>

View File

@ -0,0 +1,199 @@
<template>
<el-container>
<el-main>
<el-form :model="localForm" label-width="150px" label-position="left" :rules="rules">
<el-form-item label="拟申请专利名称" prop="name">
<el-input v-model="localForm.name" clearable :disabled="localMode ==='view'"></el-input>
</el-form-item>
<el-form-item label="发明人(设计人)" prop="author">
<el-input v-model="localForm.author" clearable :disabled="localMode ==='view'"></el-input>
</el-form-item>
<el-form-item label="专利类型" prop="type">
<el-select v-model="localForm.type" placeholder="请选择专利类型" :disabled="localMode ==='view'">
<el-option label="发明专利" value="invention"></el-option>
<el-option label="实用新型专利" value="utility"></el-option>
<el-option label="外观设计专利" value="design"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否公开" prop="is_public">
<el-radio-group v-model="localForm.is_public" :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="拟申请地域">
<el-radio-group v-model="localForm.area" :disabled="localMode ==='view'">
<el-radio label="国内申请" value="Domestic"></el-radio>
<el-radio label="国外申请" value="Foreign"></el-radio>
<el-radio label="PCT申请" value="PCT"></el-radio>
</el-radio-group>
<el-input
v-if="localForm.area && (localForm.area.includes('Foreign') || localForm.area.includes('PCT'))"
v-model="localForm.other_area"
placeholder = "请输入申请的国家"
size = "small"
style="margin-top: 10;"
:disabled="localMode ==='view'"
></el-input>
</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-button type="primary" size="small" icon="el-icon-upload"> </el-button>
</sc-upload-file>
</div>
</el-col>
</el-row>
</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-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>
</el-form-item>
</el-form>
<el-footer v-show="localMode!=='show'">
<ticketd_b
:workflow_key="'patent'"
:title="ticketTitle"
:t_id="localForm.id"
:ticket_="localForm.ticket_"
:ticket_data="ticket_data"
:submit_b_func="submit_b_func"
ref="ticketd_b"
@success="$emit('success')"
@colsed="$emit('closed')"
/>
</el-footer>
</el-main>
<el-aside v-if="localForm.ticket_">
<ticketd
:ticket_="localForm.ticket_"
:ticket_data="ticket_data"
@success="$emit('success')"
style="margin-top: 20px;"
/>
</el-aside>
</el-container>
</template>
<script>
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: () => ({}) },
t_id: {
type: String,
default: null
},
},
components: {ticketd, ticketd_b},
emits: ["update:modelValue", "submit", "cancel"],
data() {
return {
ticket_data: {},
ticketTitle: "专利申请",
localMode : this.mode,
rules: {
filename: [{ required: true, message: "请输入文件名称", trigger: "blur" }],
},
localForm: {
ticket_: { state_: { type: '' } },
...(this.modelValue || {}) }
};
},
mounted() {
console.log('mode', this.localMode)
},
methods: {
async submit_b_func() {
let that = this;
this.ticketTitle = `${this.localForm.filename}-专利审批`
if(that.localMode == "add") {
let res = await that.$API.ofm.patentinfo.create.req(that.localForm);
that.localForm.id = res.id;
} else if (that.localMode == "edit") {
await that.$API.ofm.patentinfo.update.req(that.localForm.id, that.localForm);
}
},
getTid (){
var that = this;
if (that.t_id) {
that.$API.ofm.patentinfo.item.req(that.t_id).then(res=>{
that.form = res;
if(res.ticket_.state_.type == 1 && res.create_by == that.$TOOL.data.get("USER_INFO").id ) {
that.localMode = "edit";
}else{
that.localMode = "show";
}
})
}
},
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

@ -85,6 +85,7 @@
</el-form>
<el-footer v-show="localMode!=='show'">
<ticketd_b
v-if="ticketview"
:workflow_key="'seal'"
:title="ticketTitle"
:t_id="localForm.id"
@ -125,6 +126,7 @@ export default {
data() {
return {
ticket_data: {},
ticketview: false,
ticketTitle: "用印申请",
localForm: {
ticket_: {
@ -139,6 +141,7 @@ export default {
};
},
mounted() {
console.log('------------------',this.t_id)
this.getTid();
this.initTimeRange();
if (this.localForm.ticket_?.state_.type===1){
@ -186,9 +189,12 @@ export default {
},
getTid (){
var that = this;
console.log('----------that--------',that.t_id)
if (that.t_id) {
that.$API.ofm.lendingseal.item.req(that.t_id).then(res=>{
that.form = res;
that.localForm = res;
console.log('----------ticket_--------',that.localForm.ticket_)
that.ticketview = true;
if(res.ticket_.state_.type == 1 && res.create_by == that.$TOOL.data.get("USER_INFO").id ) {
that.localMode = "edit";
}else{