feat:光芯审批

This commit is contained in:
shijing 2025-11-21 13:22:27 +08:00
parent 3e7268802e
commit f22f239518
17 changed files with 1286 additions and 210 deletions

View File

@ -62,12 +62,40 @@
} }
}, },
{ {
"path" : "pages/ofm/patent_form", "path" : "pages/srm/patent_form",
"style" : "style" :
{ {
"navigationBarTitleText" : "专利审批" "navigationBarTitleText" : "专利审批"
} }
}, },
{
"path" : "pages/srm/paperse_form",
"style" :
{
"navigationBarTitleText" : "论文申密"
}
},
{
"path" : "pages/srm/plant_form",
"style" :
{
"navigationBarTitleText" : "平台审批"
}
},
{
"path" : "pages/srm/project_form",
"style" :
{
"navigationBarTitleText" : "立项审批"
}
},
{
"path" : "pages/hrm/resignation_form",
"style" :
{
"navigationBarTitleText" : "离职申请"
}
},
{ {
"path" : "pages/ofm/mroom", "path" : "pages/ofm/mroom",
"style" : "style" :
@ -75,6 +103,13 @@
"navigationBarTitleText" : "会议室" "navigationBarTitleText" : "会议室"
} }
}, },
{
"path" : "pages/pum/supplieraudit_form",
"style" :
{
"navigationBarTitleText" : "供应商审批"
}
},
{ {
"path" : "pages/ofm/booking", "path" : "pages/ofm/booking",
"style" : "style" :

View File

@ -0,0 +1,143 @@
<!-- 离职申请 -->
<template>
<view class="container">
<scroll-view scroll-y style="padding-bottom: 180rpx;background-color: #fff;">
<uni-forms v-model="form" label-width="150rpx" ref="customForm" :rules="customRules">
<ticketd :ticket_="form.ticket_"></ticketd>
<uni-forms-item label="姓名" required>
<uni-easyinput v-model="form.employee_name" placeholder="请输入姓名" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="部门" required>
<uni-easyinput v-model="form.belong_dept_name" placeholder="请输入岗位" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="岗位" required>
<uni-easyinput v-model="form.post_name" placeholder="请输入岗位" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="离职时间" required>
<uni-datetime-picker type="date" :clear-icon="false" v-model="form.end_date" v-if="mode!='show'"/>
<span v-else>{{form.end_date}}</span>
</uni-forms-item>
<uni-forms-item label="离职原因:" label-width="750" required>
</uni-forms-item>
<uni-forms-item label-width="100">
<textarea placeholder-style="color:#efefef" v-model="form.reason" placeholder="离职原因" style="width:100%; border: 2upx solid #e5e5e5;padding: 10upx;"/>
</uni-forms-item>
<uni-forms-item label="办理离职交接日期" required v-if="form.ticket_&&form.ticket_.state_">
<uni-datetime-picker type="date" :clear-icon="false" v-model="ticket_data.handle_date" v-if="form.ticket_?.state_?.name=='部门负责人'"/>
<span v-else>{{form.ticket_.ticket_data.handle_date}}</span>
</uni-forms-item>
</uni-forms>
</scroll-view>
<view class="footer_fixed">
<ticketd_b :workflow_key="'wf_resignation'" :title="form.employee_name + '-离职申请'" :t_id="form.id" :ticket_="form.ticket_"
:ticket_data="ticket_data" @success="submitSuccess" :submit_b_func="submit_b_func" ref="ticketd_b_start"></ticketd_b>
</view>
</view>
</template>
<script>
import ticketd_b from "../wf/ticketd_b.vue"
import ticketd from "../wf/ticketd.vue"
import {actStateEnum} from "@/utils/enum.js"
export default {
components: { ticketd_b, ticketd },
data(){
return{
mode:"add",
t_id: null,
form:{
reason:"",
employee:"",
end_date:"",
},
ticket_data:{
handle_date:""
},
userInfo:{},
type:0,
hobby: [
{text: '省级平台',value: '省级平台'},
{text: '市级平台',value: '市级平台'},
],
header:"",
customRules: {
filename: {
rules: [{
required: true,
errorMessage: '姓名不能为空'
}]
},
age: {
rules: [{
required: true,
errorMessage: '年龄不能为空'
}]
},
},
}
},
async onLoad(options) {
let that = this;
let userInfo = uni.getStorageSync("userInfo");
that.form.employee_name = userInfo.name;
that.form.post_name = userInfo.post_name;
that.form.post = userInfo.post;
that.form.belong_dept = userInfo.belong_dept;
that.form.belong_dept_name = userInfo.belong_dept_name;
that.form.id='';
that.mode = options.mode?options.mode:'show';
that.t_id = options.t_id?options.t_id:null;
if(that.mode != "add"){
if(that.t_id) {
that.form = await that.$api.resignationItem(that.t_id);
if(that.form.ticket_.state_.type == 1 && that.form.create_by == uni.getStorageSync("userInfo").id ) {
that.mode = "edit";
}else{
that.mode = "show";
}
}
}else{
that.getEmployee();
}
},
methods:{
async getEmployee(){
let that = this;
let obj = {search:that.form.employee_name,page:0,query:'{name,id}'}
let res = await that.$api.employeeList(obj);
that.form.employee = res[0].id;
},
sealChange(){
console.log('seal1',this.seal1)
},
async submit_b_func(id){
let that = this;
that.$refs.customForm.validate().then(res => {
}).catch(err => {
console.log('err', err);
})
let res = await that.$api.resignationCreate(that.form)
that.form.id = res.id;
},
submitSuccess(){
uni.navigateTo({
url: "/pages/index/index"
})
},
}
}
</script>
<style scoped>
.uni-data-checklist .checklist-group .checklist-box{
margin: 10px 0!important;
}
.flex_file_picker>.uni-file-picker__files{
flex-direction: row;
}
.flex_file_picker{
width: 90px;
flex: none;
}
</style>

View File

@ -79,10 +79,40 @@
type: "warning" type: "warning"
}, },
{ {
navigate:'/pages/ofm/patent_form?mode=add', navigate:'/pages/srm/patent_form?mode=add',
url: '/static/huiyishi.png', url: '/static/huiyishi.png',
text: '专利审批', text: '专利审批',
type: "warning" type: "warning"
},
{
navigate:'/pages/srm/paperse_form?mode=add',
url: '/static/huiyishi.png',
text: '论文申密',
type: "warning"
},
{
navigate:'/pages/srm/plant_form?mode=add',
url: '/static/huiyishi.png',
text: '平台审批',
type: "warning"
},
{
navigate:'/pages/srm/project_form?mode=add',
url: '/static/huiyishi.png',
text: '立项审批',
type: "warning"
},
{
navigate:'/pages/hrm/resignation_form?mode=add',
url: '/static/huiyishi.png',
text: '离职申请',
type: "warning"
},
{
navigate:'/pages/pum/supplieraudit_form?mode=add',
url: '/static/huiyishi.png',
text: '供应商审批',
type: "warning"
} }
] ]
} }

View File

@ -56,8 +56,8 @@
</view> </view>
</scroll-view> </scroll-view>
<view class="footer_sticky"> <view class="footer_sticky">
<ticketd_b :workflow_key="'booking'" :title="form.title + '-会议室预定'" :t_id="form.id" :ticket_="form.ticket_" <ticketd_b :workflow_key="'wf_booking'" :title="form.title + '-会议室预定'" :t_id="form.id" :ticket_="form.ticket_"
@success="()=>{uni.navigateBack()} " :submit_b_func="submit_b_func" ref="ticketd_b_start"></ticketd_b> @success="submitSuccess" :submit_b_func="submit_b_func" ref="ticketd_b_start"></ticketd_b>
</view> </view>
</view> </view>
</template> </template>
@ -289,7 +289,12 @@ import {actStateEnum} from "@/utils/enum.js"
that.form.id = res.id; that.form.id = res.id;
} }
} }
} },
submitSuccess(){
uni.navigateTo({
url: "/pages/index/index"
})
},
} }
} }
</script> </script>

View File

@ -6,6 +6,7 @@
<ticketd :ticket_="form.ticket_"></ticketd> <ticketd :ticket_="form.ticket_"></ticketd>
<uni-forms-item label="档案名称" required> <uni-forms-item label="档案名称" required>
<uni-data-select <uni-data-select
multiple
v-model="form.borrow_file" v-model="form.borrow_file"
:localdata="fileList" :localdata="fileList"
:disabled="mode=='show'" :disabled="mode=='show'"
@ -18,21 +19,20 @@
<uni-forms-item label="借阅时间" required> <uni-forms-item label="借阅时间" required>
<uni-datetime-picker type="date" :clear-icon="false" v-model="form.borrow_date" @change="mdateChange" <uni-datetime-picker type="date" :clear-icon="false" v-model="form.borrow_date" @change="mdateChange"
v-if="mode!='show'"/> v-if="mode!='show'"/>
<span v-else>{{form.start_time}}</span> <span v-else>{{form.borrow_date}}</span>
</uni-forms-item>
<uni-forms-item label="归还时间" required v-if="form.ticket_?.state_?.name=='档案管理员审批'">
<uni-datetime-picker type="date" :clear-icon="false" v-model="form.return_date" @change="mdateChange"
v-if="mode!='show'"/>
<span v-else>{{form.end_time}}</span>
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="用途"> <uni-forms-item label="用途">
<uni-data-checkbox multiple v-model="form.remark" :localdata="hobby"></uni-data-checkbox> <uni-data-checkbox multiple v-model="form.remark" :localdata="hobby"></uni-data-checkbox>
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="归还时间" required v-if="form.ticket_&&form.ticket_.state_">
<uni-datetime-picker v-if="form.ticket_?.state_?.name=='档案管理员审批'" type="date" :clear-icon="false" v-model="ticket_data.return_date" @change="mdateChange" />
<span v-else>{{form.ticket_.ticket_data.return_date}}</span>
</uni-forms-item>
</uni-forms> </uni-forms>
</scroll-view> </scroll-view>
<view class="footer_fixed"> <view class="footer_fixed">
<ticketd_b :workflow_key="'borrowrecord'" title="档案借阅" :t_id="form.id" :ticket_="form.ticket_" <ticketd_b :workflow_key="'wf_borrowrecord'" title="档案借阅" :t_id="form.id" :ticket_="form.ticket_" :ticket_data="ticket_data"
@success="()=>{uni.navigateBack()} " :submit_b_func="submit_b_func" ref="ticketd_b_start"></ticketd_b> @success="submitSuccess" :submit_b_func="submit_b_func" ref="ticketd_b_start"></ticketd_b>
</view> </view>
</view> </view>
</template> </template>
@ -50,10 +50,12 @@ import {actStateEnum} from "@/utils/enum.js"
borrow_file:"", borrow_file:"",
contacts:"", contacts:"",
borrow_date:"", borrow_date:"",
return_date:"",
remark:"", remark:"",
ticket_:null, ticket_:null,
}, },
ticket_data:{
return_date:""
},
hobby:[{ hobby:[{
text: '借阅', text: '借阅',
value: '借阅', value: '借阅',
@ -81,12 +83,27 @@ import {actStateEnum} from "@/utils/enum.js"
}else{ }else{
that.mode = "show"; that.mode = "show";
} }
}else{
// that.form = uni.getStorageSync("currentBooking");
} }
} }
}, },
mounted() {
this.getfileList();
},
methods:{ methods:{
getfileList(){
let that = this;
let data = [];
that.$api.fileRecord({page:0}).then(res=>{
res.forEach(item=>{
let obj = item;
obj.text = item.name;
obj.value = item.id;
data.push(obj)
})
console.log(data)
that.fileList = data;
})
},
// //
async submit_b_func(id){ async submit_b_func(id){
let that = this; let that = this;
@ -98,7 +115,12 @@ import {actStateEnum} from "@/utils/enum.js"
that.form.id = res.id; that.form.id = res.id;
} }
} }
} },
submitSuccess(){
uni.navigateTo({
url: "/pages/index/index"
})
},
} }
} }
</script> </script>

View File

@ -1,157 +0,0 @@
<!-- 专利申请 -->
<template>
<view class="container">
<scroll-view scroll-y style="padding-bottom: 180rpx;background-color: #fff;">
<uni-forms v-model="form" label-width="150rpx" ref="customForm" :rules="customRules">
<ticketd :ticket_="form.ticket_"></ticketd>
<uni-forms-item label="专利名称" required name="filename">
<uni-easyinput v-model="form.filename" placeholder="请输入专利名称" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="发明人" required>
<uni-easyinput v-model="form.filename" placeholder="请输入发明人" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="专利类型">
<uni-data-checkbox multiple v-model="form.seal" :localdata="hobby" @change="sealTypeChange"></uni-data-checkbox>
</uni-forms-item>
<uni-forms-item label="提前公开">
<uni-data-checkbox multiple v-model="form.seal" :localdata="hobby2" @change="sealTypeChange"></uni-data-checkbox>
</uni-forms-item>
<uni-forms-item label="申请地域">
<uni-data-checkbox multiple v-model="form.seal" :localdata="hobby3" @change="sealTypeChange"></uni-data-checkbox>
</uni-forms-item>
<uni-forms-item label="" v-if="(form.seal || '').includes('PCT申请')">
<uni-easyinput v-model="form.seal_other" placeholder="请输入拟申请的国家" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="技术状态">
<uni-data-checkbox multiple v-model="form.seal" :localdata="hobby4" @change="sealTypeChange"></uni-data-checkbox>
<template style="display: flex;flex-direction: column;">
<uni-file-picker v-for="(item,index) in hobby4" v-model="form.file" limit="1" return-type="object" file-mediatype="all" @select="fileSelect" @success="fileSuccess"></uni-file-picker>
</template>
</uni-forms-item>
<uni-forms-item label="技术文件">
<uni-data-checkbox multiple v-model="form.seal" :localdata="hobby5" @change="sealTypeChange"></uni-data-checkbox>
<template style="display: flex;flex-direction: column;">
<uni-number-box v-for="(item,index) in hobby5" v-model="form.file_count" :key="item" :disabled="mode=='show'"></uni-number-box>
</template>
</uni-forms-item>
</uni-forms>
</scroll-view>
<view class="footer_fixed">
<ticketd_b :workflow_key="'seal'" :title="form.filename + '-印章申请'" :t_id="form.id" :ticket_="form.ticket_"
@success="()=>{uni.navigateBack()} " :submit_b_func="submit_b_func" ref="ticketd_b_start"></ticketd_b>
</view>
</view>
</template>
<script>
import ticketd_b from "../wf/ticketd_b.vue"
import ticketd from "../wf/ticketd.vue"
import {actStateEnum} from "@/utils/enum.js"
export default {
components: { ticketd_b, ticketd },
data(){
return{
mode:"add",
t_id: null,
form:{
id:null,
file:"",
filename:"",
file_count:"",
is_lending:false,
contacts:"",
belong_dept:"",
ticket_:null,
},
type:0,
hobby: [
{text: '发明专利',value: '发明专利'},
{text: '实用新型专利',value: '实用新型专利'},
{text: '外观设计专利',value: '外观设计专利'},
],
hobby2:[
{text: '是',value: true},
{text: '否',value: false},
],
hobby3: [
{text: '国内申请',value: '国内申请'},
{text: '国外申请',value: '国外申请'},
{text: 'PCT申请',value: 'PCT申请'},
],
hobby4: [
{text: '是否进行过科技成果鉴定',value: '是否进行过科技成果鉴定'},
{text: '是否发表过文章',value: '是否发表过文章'},
{text: '是否参与过展会展出',value: '是否参与过展会展出'},
{text: '是否参与应用于生产/销售',value: '是否参与应用于生产/销售'},
{text: '是否参与过技术交流',value: '是否参与过技术交流'},
//
],
hobby5: [
//
{text: '技术背景材料',value: ' 技术背景材料'},
{text: '技术交底材料',value: '技术交底材料'},
{text: '查新检索报告',value: '查新检索报告'},
//
{text: '图或者照片',value: '图或者照片'},
],
header:"",
customRules: {
filename: {
rules: [{
required: true,
errorMessage: '姓名不能为空'
}]
},
age: {
rules: [{
required: true,
errorMessage: '年龄不能为空'
}]
},
},
}
},
async onLoad(options) {
let that = this;
that.form.id='';
that.mode = options.mode?options.mode:'show';
that.t_id = options.t_id?options.t_id:null;
if(that.mode != "add"){
if(that.t_id) {
that.form = await that.$api.sealItem(that.t_id);
if(that.form.ticket_.state_.type == 1 && that.form.create_by == uni.getStorageSync("userInfo").id ) {
that.mode = "edit";
}else{
that.mode = "show";
}
}else{
that.form = uni.getStorageSync("currentBooking");
}
}
},
methods:{
async submit_b_func(id){
let that = this;
that.$refs.customForm.validate().then(res => {
}).catch(err => {
console.log('err', err);
})
if (that.mode != 'show') {
if(that.form.id) {
await that.$api.patentUpdate(that.form.id, that.form)
}else{
let res = await that.$api.patentCreate(that.form)
that.form.id = res.id;
}
}
},
}
}
</script>
<style scoped>
.uni-data-checklist .checklist-group .checklist-box{
margin: 10px 0!important;
}
</style>

View File

@ -40,8 +40,8 @@
</uni-forms> </uni-forms>
</scroll-view> </scroll-view>
<view class="footer_fixed"> <view class="footer_fixed">
<ticketd_b :workflow_key="'publicity'" :title="form.title + '-宣传报道'" :t_id="form.id" :ticket_="form.ticket_" <ticketd_b :workflow_key="'wf_publicity'" :title="form.title + '-宣传报道'" :t_id="form.id" :ticket_="form.ticket_"
@success="()=>{uni.navigateBack()} " :submit_b_func="submit_b_func" ref="ticketd_b_start"></ticketd_b> @success="submitSuccess" :submit_b_func="submit_b_func" ref="ticketd_b_start"></ticketd_b>
</view> </view>
</view> </view>
</template> </template>
@ -122,7 +122,12 @@ import {actStateEnum} from "@/utils/enum.js"
that.form.id = res.id; that.form.id = res.id;
} }
} }
} },
submitSuccess(){
uni.navigateTo({
url: "/pages/index/index"
})
},
} }
} }
</script> </script>

View File

@ -34,8 +34,8 @@
</uni-forms> </uni-forms>
</scroll-view> </scroll-view>
<view class="footer_fixed"> <view class="footer_fixed">
<ticketd_b :workflow_key="'seal'" :title="form.filename + '-印章申请'" :t_id="form.id" :ticket_="form.ticket_" <ticketd_b :workflow_key="'wf_seal'" :title="form.filename + '-印章申请'" :t_id="form.id" :ticket_="form.ticket_"
@success="()=>{uni.navigateBack()} " :submit_b_func="submit_b_func" ref="ticketd_b_start"></ticketd_b> @success="submitSuccess" :submit_b_func="submit_b_func" ref="ticketd_b_start"></ticketd_b>
</view> </view>
</view> </view>
</template> </template>
@ -166,7 +166,12 @@ import {actStateEnum} from "@/utils/enum.js"
that.form.id = res.id; that.form.id = res.id;
} }
} }
} },
submitSuccess(){
uni.navigateTo({
url: "/pages/index/index"
})
},
} }
} }
</script> </script>

View File

@ -27,24 +27,24 @@
<uni-forms-item label="出发公里数" required> <uni-forms-item label="出发公里数" required>
<uni-number-box v-model="form.start_km" :disabled="mode=='show'"></uni-number-box> <uni-number-box v-model="form.start_km" :disabled="mode=='show'"></uni-number-box>
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="归还公里数" required v-if="form.ticket_?.state_?.name=='用车中'">
<uni-number-box v-model="form.end_km" :disabled="mode=='show'"></uni-number-box>
</uni-forms-item>
<uni-forms-item label="出车时间" required> <uni-forms-item label="出车时间" required>
<uni-datetime-picker type="date" :clear-icon="false" v-model="form.start_time" @change="mdateChange" <uni-datetime-picker type="datetime" :clear-icon="false" v-model="form.start_time" @change="mdateChange"
v-if="mode!='show'"/> v-if="mode!='show'"/>
<span v-else>{{form.start_time}}</span> <span v-else>{{form.start_time}}</span>
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="还车时间" required v-if="form.ticket_?.state_?.name=='用车中'"> <uni-forms-item label="归还公里数" required v-if="form.ticket_&&form.ticket_.state_">
<uni-datetime-picker type="date" :clear-icon="false" v-model="form.end_time" @change="mdateChange" <uni-number-box v-if="form.ticket_?.state_?.name=='用车中'" v-model="ticket_data.end_km" :disabled="mode=='show'"></uni-number-box>
v-if="mode!='show'"/> <span v-else>{{form.ticket_.ticket_data.end_km}}</span>
<span v-else>{{form.end_time}}</span> </uni-forms-item>
<uni-forms-item label="还车时间" required v-if="form.ticket_&&form.ticket_.state_">
<uni-datetime-picker type="datetime" v-if="form.ticket_?.state_?.name=='用车中'" :clear-icon="false" v-model="ticket_data.end_time" @change="mdateChange"/>
<span v-else>{{form.ticket_.ticket_data.end_time}}</span>
</uni-forms-item> </uni-forms-item>
</uni-forms> </uni-forms>
</scroll-view> </scroll-view>
<view class="footer_fixed"> <view class="footer_fixed">
<ticketd_b :workflow_key="'vehicle'" title="用车申请" :t_id="form.id" :ticket_="form.ticket_" <ticketd_b :workflow_key="'wf_vehicle'" title="用车申请" :t_id="form.id" :ticket_="form.ticket_" :ticket_data="ticket_data"
@success="()=>{uni.navigateBack()} " :submit_b_func="submit_b_func" ref="ticketd_b_start"></ticketd_b> @success="submitSuccess" :submit_b_func="submit_b_func" ref="ticketd_b_start"></ticketd_b>
</view> </view>
</view> </view>
</template> </template>
@ -65,10 +65,11 @@ import {actStateEnum} from "@/utils/enum.js"
location:"", location:"",
destination:"", destination:"",
start_km:"", start_km:"",
// end_km:"",
start_time:"", start_time:"",
// end_time:"", },
ticket_:null, ticket_data:{
end_km:"",
end_time:"",
}, },
vehicle_list:[{text: '市内', value: true},{text: '市外', value: false}], vehicle_list:[{text: '市内', value: true},{text: '市外', value: false}],
} }
@ -102,7 +103,12 @@ import {actStateEnum} from "@/utils/enum.js"
that.form.id = res.id; that.form.id = res.id;
} }
} }
} },
submitSuccess(){
uni.navigateTo({
url: "/pages/index/index"
})
},
} }
} }
</script> </script>

View File

@ -0,0 +1,126 @@
<!-- 供应商 -->
<template>
<view class="container">
<scroll-view scroll-y style="padding-bottom: 180rpx;background-color: #fff;">
<uni-forms v-model="form" label-width="150rpx" ref="customForm" :rules="customRules">
<ticketd :ticket_="form.ticket_"></ticketd>
<uni-forms-item label="供应商名称" required>
<uni-easyinput v-model="form.name" placeholder="请输入供应商名称" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="物料分类" required>
<uni-easyinput v-model="form.material_type" placeholder="请输入物料分类" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="物料名称" required>
<uni-easyinput v-model="form.material_name" placeholder="请输入物料名称" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="调查表" required>
<uni-file-picker limit="1" file-mediatype="all" v-model="form.survery_form" @success="uploadSuccess('1')"></uni-file-picker>
</uni-forms-item>
<uni-forms-item label="营业执照" required>
<uni-file-picker limit="1" file-mediatype="all" v-model="form.business_license" @success="uploadSuccess('2')"></uni-file-picker>
</uni-forms-item>
<uni-forms-item label="质量证书" required>
<uni-file-picker limit="1" file-mediatype="all" v-model="form.quality_certificate" @success="uploadSuccess('3')"></uni-file-picker>
</uni-forms-item>
</uni-forms>
</scroll-view>
<view class="footer_fixed">
<ticketd_b :workflow_key="'wf_resignation'" :title="form.employee_name + '-离职申请'" :t_id="form.id" :ticket_="form.ticket_"
@success="submitSuccess" :submit_b_func="submit_b_func" ref="ticketd_b_start"></ticketd_b>
</view>
</view>
</template>
<script>
import ticketd_b from "../wf/ticketd_b.vue"
import ticketd from "../wf/ticketd.vue"
import {actStateEnum} from "@/utils/enum.js"
export default {
components: { ticketd_b, ticketd },
data(){
return{
mode:"add",
t_id: null,
form:{
name:"",
material_type:"",
material_name:"",
},
userInfo:{},
type:0,
header:"",
customRules: {
filename: {
rules: [{
required: true,
errorMessage: '姓名不能为空'
}]
},
age: {
rules: [{
required: true,
errorMessage: '年龄不能为空'
}]
},
},
}
},
async onLoad(options) {
let that = this;
that.mode = options.mode?options.mode:'show';
that.t_id = options.t_id?options.t_id:null;
if(that.mode != "add"){
if(that.t_id) {
that.form = await that.$api.pfItem(that.t_id);
if(that.form.ticket_.state_.type == 1 && that.form.create_by == uni.getStorageSync("userInfo").id ) {
that.mode = "edit";
}else{
that.mode = "show";
}
}
}else{
that.getEmployee();
}
},
methods:{
async getEmployee(){
let that = this;
let obj = {search:that.form.employee_name,page:0,query:'{name,id}'}
let res = await that.$api.employeeList(obj);
that.form.employee = res[0].id;
},
uploadSuccess(type){
console.log('type', type);
console.log('form.material_type',this.form.material_type)
},
async submit_b_func(id){
let that = this;
that.$refs.customForm.validate().then(res => {
}).catch(err => {
console.log('err', err);
})
let res = await that.$api.pfCreate(that.form)
that.form.id = res.id;
},
submitSuccess(){
uni.navigateTo({
url: "/pages/index/index"
})
},
}
}
</script>
<style scoped>
.uni-data-checklist .checklist-group .checklist-box{
margin: 10px 0!important;
}
.flex_file_picker>.uni-file-picker__files{
flex-direction: row;
}
.flex_file_picker{
width: 90px;
flex: none;
}
</style>

267
pages/srm/paperse_form.vue Normal file
View File

@ -0,0 +1,267 @@
<!-- 论文申密 -->
<template>
<view class="container">
<scroll-view scroll-y style="padding-bottom: 180rpx;background-color: #fff;">
<uni-forms v-model="form" label-width="150upx" ref="customForm" :rules="customRules">
<ticketd :ticket_="form.ticket_"></ticketd>
<uni-forms-item label="论文名称" required name="name">
<uni-easyinput v-model="form.paper_name" placeholder="请输入论文名称" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="期刊名称" required name="publication_name">
<uni-easyinput v-model="form.publication_name" placeholder="请输入期刊名称" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="作者" required>
<uni-easyinput v-model="form.author" placeholder="作者" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="文章类型">
<uni-data-checkbox v-model="form.paper_type" :localdata="hobby" @change="sealTypeChange"></uni-data-checkbox>
</uni-forms-item>
<uni-forms-item label="中文核心">
<uni-data-checkbox v-model="form.is_chinese_core" :localdata="hobby2" @change="sealTypeChange"></uni-data-checkbox>
</uni-forms-item>
<uni-forms-item label="SCI/EI收录">
<uni-data-checkbox v-model="form.is_sci" :localdata="hobby3" @change="sealTypeChange"></uni-data-checkbox>
</uni-forms-item>
<uni-forms-item label="" v-if="(form.seal || '').includes('PCT申请')">
<uni-easyinput v-model="form.seal_other" placeholder="请输入拟申请的国家" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="技术状态"></uni-forms-item>
<template v-for="(item,index) in hobby4">
<uni-data-checkbox multiple v-model="item[0].status" :localdata="item" @change="checkChange" style="padding-left:150upx;"></uni-data-checkbox>
<template v-if="item[0].status.length>0" style="display: flex;justify-content: flex-end;width:100%">
<uni-file-picker v-model="item[0].file" limit="1" :inde=index return-type="object" file-mediatype="all" style="padding-left:150upx;" class="flex_file_picker" @select="fileSelect" @success="fileSuccess"></uni-file-picker>
</template>
</template>
<uni-forms-item label="技术文件"></uni-forms-item>
<template v-for="item in hobby5">
<view style="display: flex;margin-bottom: 20upx;">
<uni-data-checkbox multiple v-model="item[0].name" :localdata="item" @change="checkChange" style="padding-left:150upx;flex: none"></uni-data-checkbox>
<uni-number-box v-model="item[0].pages" :disabled="mode=='show'||item[0].name.length<1"></uni-number-box>
</view>
</template>
</uni-forms>
</scroll-view>
<view class="footer_fixed">
<ticketd_b :workflow_key="'wf_paperse'" :title="form.name + '-论文申密'" :t_id="form.id" :ticket_="form.ticket_"
@success="submitSuccess" :submit_b_func="submit_b_func" ref="ticketd_b_start"></ticketd_b>
</view>
</view>
</template>
<script>
import ticketd_b from "../wf/ticketd_b.vue"
import ticketd from "../wf/ticketd.vue"
import {actStateEnum} from "@/utils/enum.js"
export default {
components: { ticketd_b, ticketd },
data(){
return{
mode:"add",
t_id: null,
form:{
name:"",
author:"",
type:"",
is_public:false,
area:"",
other_area:"",
belong_dept:"",
tech_status:[],
tech_file:[],
},
type:0,
hobby: [
{text: '研究论文',value: '研究论文'},
{text: '综述',value: '综述'},
],
hobby2:[
{text: '是',value: true},
{text: '否',value: false},
],
hobby3: [
{text: '是',value: true},
{text: '否',value: false},
],
hobby4: [
[{text: '是否进行过科技成果鉴定',value: '是',checked:false,status:[],file:'',files:[]}],
[{text: '是否发表过文章',value: '是',checked:false,status:[],file:'',files:[]}],
[{text: '是否参与过展会展出',value: '是',checked:false,status:[],file:'',files:[]}],
[{text: '是否参与应用于生产/销售',value: '是',checked:false,status:[],file:'',files:[]}],
[{text: '是否参与过技术交流',value: '是',checked:false,status:[],file:'',files:[]}],
],
hobby5: [//
[{text: '论文内容',value: '论文内容',pages:0,checked:false, name:[]}],
[{text: '图或者照片',value: '图或者照片',pages:0,checked:false,name:[]}],//
],
header:"",
customRules: {
filename: {
rules: [{
required: true,
errorMessage: '姓名不能为空'
}]
},
age: {
rules: [{
required: true,
errorMessage: '年龄不能为空'
}]
},
},
}
},
async onLoad(options) {
let that = this;
that.form.id='';
that.mode = options.mode?options.mode:'show';
that.t_id = options.t_id?options.t_id:null;
that.header = {
Authorization: "Bearer " + uni.getStorageSync('access')
}
if(that.mode != "add"){
if(that.t_id) {
that.form = await that.$api.paperseItem(that.t_id);
that.form.tech_status.forEach(item=>{
let index = 0;
if(item.name=='是否进行过科技成果鉴定'){index=0}
else if(item.name=='是否发表过文章'){index=1}
else if(item.name=='是否参与过展会展出'){index=2}
else if(item.name=='是否参与应用于生产/销售'){index=3}
else if(item.name=='是否参与过技术交流'){index=4}
that.hobby4[index][0].file = item.file;
that.hobby4[index][0].checked = item.checked;
that.hobby4[index][0].status = [];
if(item.status=='是'){
that.hobby4[index][0].status.push(item.status)
let obj = {name:item.file,path:item.file};
that.hobby4[index][0].file =obj;
that.hobby4[index][0].files.push(obj)
}
})
that.form.tech_file.forEach(item2=>{
let index2 = 0;
if(item2.name=='论文内容'){index2=0}
else if(item2.name=='图或者照片'){index2=1}
that.hobby5[index2][0].pages = item2.pages;
that.hobby5[index2][0].checked = item2.checked;
that.hobby5[index2][0].name=[];
if(item2.checked){
that.hobby5[index2][0].name.push(item2.name);
}
})
console.log('_____________that.form______________',that.form)
console.log('_____________that.hobby5',that.hobby5)
console.log('_____________that.hobby4',that.hobby4)
if(that.form.ticket_.state_.type == 1 && that.form.create_by == uni.getStorageSync("userInfo").id ) {
that.mode = "edit";
}else{
that.mode = "show";
}
}
}
},
methods:{
checkChange(e){
console.log('e',e)
},
sealChange(){
console.log('seal1',this.seal1)
},
fileSelect(e,index){
console.log('fileSelect',e)
console.log('fileSelectindex',index)
this.uploadFile(e,index)
},
fileSuccess(e){
console.log('fileSuccess',e)
},
uploadFile(e,index) {
let that = this;
if (e.tempFiles.length === 0) {
uni.showToast({
title: '请先选择文件',
icon: 'none',
});
return;
}
//
const file = e.tempFiles[0];
let fieldName = 'file';
let filePath = file.url;
//
uni.uploadFile({
url: "http://49.232.14.174:2226/api/file/",
filePath: filePath,
name: fieldName,
formData: {},
header: that.header,
success: (uploadRes) => {
//
const data = JSON.parse(uploadRes.data);
if(data){
that.hobby4[index][0].file ={name:data.name,path:data.path} ;
uni.showToast({
title: '上传成功',
icon: 'success',
});
}
},
});
},
async submit_b_func(id){
let that = this;
console.log('that.form',that.form)
let tech_file = [],tech_status=[];
that.hobby4.forEach(item4=>{
let obj4 = {};
if(item4[0].status.length>0){
obj4.name = item4[0].text;
obj4.status = '是';
obj4.file = item4[0].file.path;
}else{
obj4.name = item4[0].text;
obj4.status = '否';
obj4.file = "";
}
tech_status.push(obj4)
})
that.hobby5.forEach(item5=>{
let obj5 = {};
obj5.name = item5[0].text;
obj5.pages = item5[0].pages;
obj5.checked = item5[0].name.length>0?true:false;
tech_file.push(obj5)
})
let obj = {};
obj = that.form;
obj.tech_file = tech_file;
obj.tech_status = tech_status;
that.$refs.customForm.validate().then(res => {
}).catch(err => {
console.log('err', err);
})
let res = await that.$api.paperseCreate(obj)
that.form.id = res.id;
},
submitSuccess(){
uni.navigateTo({
url: "/pages/index/index"
})
},
}
}
</script>
<style scoped>
.uni-data-checklist .checklist-group .checklist-box{
margin: 10px 0!important;
}
.flex_file_picker>.uni-file-picker__files{
flex-direction: row;
}
.flex_file_picker{
width: 100%;
flex: none;
}
</style>

273
pages/srm/patent_form.vue Normal file
View File

@ -0,0 +1,273 @@
<!-- 专利申请 -->
<template>
<view class="container">
<scroll-view scroll-y style="padding-bottom: 180rpx;background-color: #fff;">
<uni-forms v-model="form" label-width="150upx" ref="customForm" :rules="customRules">
<ticketd :ticket_="form.ticket_"></ticketd>
<uni-forms-item label="专利名称" required name="name">
<uni-easyinput v-model="form.name" placeholder="请输入专利名称" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="发明人" required>
<uni-easyinput v-model="form.author" placeholder="请输入发明人" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="专利类型" required>
<uni-data-checkbox v-model="form.type" :localdata="hobby"></uni-data-checkbox>
</uni-forms-item>
<uni-forms-item label="是否公开" required>
<uni-data-checkbox v-model="form.is_public" :localdata="hobby2"></uni-data-checkbox>
</uni-forms-item>
<uni-forms-item label="申请地域" required>
<uni-data-checkbox v-model="form.area" :localdata="hobby3"></uni-data-checkbox>
</uni-forms-item>
<uni-forms-item label="" v-if="form.area.includes('Foreign')||form.area.includes('PCT')">
<uni-easyinput v-model="form.other_area" placeholder="请输入申请的国家" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="技术状态"></uni-forms-item>
<template v-for="(item,index) in hobby4">
<uni-data-checkbox multiple v-model="item[0].status" :localdata="item" @change="checkChange" style="padding-left:150upx;"></uni-data-checkbox>
<template v-if="item[0].status.length>0" style="display: flex;justify-content: flex-end;width:100%">
<uni-file-picker v-model="item[0].file" limit="1" :inde=index return-type="object" file-mediatype="all" style="padding-left:150upx;" class="flex_file_picker" @select="fileSelect" @success="fileSuccess"></uni-file-picker>
</template>
</template>
<uni-forms-item label="技术文件"></uni-forms-item>
<template v-for="item in hobby5">
<view style="display: flex;margin-bottom: 20upx;">
<uni-data-checkbox multiple v-model="item[0].name" :localdata="item" @change="checkChange" style="padding-left:150upx;flex: none"></uni-data-checkbox>
<uni-number-box v-model="item[0].pages" :disabled="mode=='show'||item[0].name.length<1"></uni-number-box>
</view>
</template>
</uni-forms>
</scroll-view>
<view class="footer_fixed">
<ticketd_b :workflow_key="'wf_patent'" :title="form.name + '-专利审批'" :t_id="form.id" :ticket_="form.ticket_"
@success="submitSuccess" :submit_b_func="submit_b_func" ref="ticketd_b_start"></ticketd_b>
</view>
</view>
</template>
<script>
import ticketd_b from "../wf/ticketd_b.vue"
import ticketd from "../wf/ticketd.vue"
import {actStateEnum} from "@/utils/enum.js"
export default {
components: { ticketd_b, ticketd },
data(){
return{
mode:"add",
t_id: null,
form:{
name:"",
author:"",
type:"",
is_public:false,
area:"",
other_area:"",
belong_dept:"",
tech_status:[],
tech_file:[],
},
type:0,
hobby: [
{text: '发明专利',value: 'invention'},
{text: '实用新型专利',value: 'utility'},
{text: '外观设计专利',value: 'design'},
],
hobby2:[
{text: '是',value: true},
{text: '否',value: false},
],
hobby3: [
{text: '国内申请',value: 'Domestic'},
{text: '国外申请',value: 'Foreign'},
{text: 'PCT申请',value: 'PCT'},
],
hobby4: [
[{text: '是否进行过科技成果鉴定',value: '是',status:[],file:'',files:[]}],
[{text: '是否发表过文章',value: '是',status:[],file:'',files:[]}],
[{text: '是否参与过展会展出',value: '是',status:[],file:'',files:[]}],
[{text: '是否参与应用于生产/销售',value: '是',status:[],file:'',files:[]}],
[{text: '是否参与过技术交流',value: '是',status:[],file:'',files:[]}],
],
hobby5: [//
[{text: '技术背景材料',value: '技术背景材料',pages:0,checked:false, name:[]}],
[{text: '技术交底材料',value: '技术交底材料',pages:0,checked:false,name:[]}],
[{text: '查新检索报告',value: '查新检索报告',pages:0,checked:false,name:[]}],
[{text: '图或者照片',value: '图或者照片',pages:0,checked:false,name:[]}],//
],
header:"",
customRules: {
filename: {
rules: [{
required: true,
errorMessage: '姓名不能为空'
}]
},
age: {
rules: [{
required: true,
errorMessage: '年龄不能为空'
}]
},
},
}
},
async onLoad(options) {
let that = this;
that.form.id='';
that.mode = options.mode?options.mode:'show';
that.t_id = options.t_id?options.t_id:null;
that.header = {
Authorization: "Bearer " + uni.getStorageSync('access')
}
if(that.mode != "add"){
if(that.t_id) {
that.form = await that.$api.patentItem(that.t_id);
that.form.tech_status.forEach(item=>{
let index = 0;
if(item.name=='是否进行过科技成果鉴定'){index=0}
else if(item.name=='是否发表过文章'){index=1}
else if(item.name=='是否参与过展会展出'){index=2}
else if(item.name=='是否参与应用于生产/销售'){index=3}
else if(item.name=='是否参与过技术交流'){index=4}
that.hobby4[index][0].file = item.file;
if(item.status=='是'){
that.hobby4[index][0].status.push(item.status)
let obj = {name:item.file,path:item.file};
that.hobby4[index][0].files.push(obj)
}
})
that.form.tech_file.forEach(item2=>{
let index2 = 0;
if(item2.name=='技术背景材料'){index2=0}
else if(item2.name=='技术交底材料'){index2=1}
else if(item2.name=='查新检索报告'){index2=2}
else if(item2.name=='图或者照片'){index2=3}
that.hobby5[index2][0].pages = item2.pages;
that.hobby5[index2][0].checked = item2.checked;
if(item2.checked){
that.hobby5[index2][0].name=[];
that.hobby5[index2][0].name.push(item2.name);
}
})
console.log('_____________that.form______________',that.form)
console.log('_____________that.hobby5',that.hobby5)
console.log('_____________that.hobby4',that.hobby4)
if(that.form.ticket_.state_.type == 1 && that.form.create_by == uni.getStorageSync("userInfo").id ) {
that.mode = "edit";
}else{
that.mode = "show";
}
}
}
},
methods:{
checkChange(e){
console.log('e',e)
},
sealChange(){
console.log('seal1',this.seal1)
},
fileSelect(e,index){
console.log('fileSelect',e)
console.log('fileSelectindex',index)
this.uploadFile(e,index)
},
fileSuccess(e){
console.log('fileSuccess',e)
},
uploadFile(e,index) {
let that = this;
if (e.tempFiles.length === 0) {
uni.showToast({
title: '请先选择文件',
icon: 'none',
});
return;
}
//
const file = e.tempFiles[0];
let fieldName = 'file';
let filePath = file.url;
//
uni.uploadFile({
url: "http://49.232.14.174:2226/api/file/",
filePath: filePath,
name: fieldName,
formData: {},
header: that.header,
success: (uploadRes) => {
//
const data = JSON.parse(uploadRes.data);
if(data){
that.hobby4[index][0].file ={name:data.name,path:data.path} ;
uni.showToast({
title: '上传成功',
icon: 'success',
});
}
},
});
},
async submit_b_func(id){
let that = this;
console.log('that.form',that.form)
let tech_file = [],tech_status=[];
that.hobby4.forEach(item4=>{
let obj4 = {};
if(item4[0].status.length>0){
obj4.name = item4[0].text;
obj4.status = '是';
obj4.file = item4[0].file.path;
}else{
obj4.name = item4[0].text;
obj4.status = '否';
obj4.file = "";
}
tech_status.push(obj4)
})
that.hobby5.forEach(item5=>{
let obj5 = {};
obj5.name = item5[0].text;
obj5.pages = item5[0].pages;
obj5.checked = item5[0].name.length>0?true:false;
tech_file.push(obj5)
})
let obj = {};
obj = that.form;
obj.tech_file = tech_file;
obj.tech_status = tech_status;
that.$refs.customForm.validate().then(res => {
}).catch(err => {
console.log('err', err);
})
if (that.mode != 'show') {
if(obj.id) {
await that.$api.patentUpdate(obj.id,obj)
}else{
let res = await that.$api.patentCreate(obj)
that.form.id = res.id;
}
}
},
submitSuccess(){
uni.navigateTo({
url: "/pages/index/index"
})
},
}
}
</script>
<style scoped>
.uni-data-checklist .checklist-group .checklist-box{
margin: 10px 0!important;
}
.flex_file_picker>.uni-file-picker__files{
flex-direction: row;
}
.flex_file_picker{
width: 100%;
flex: none;
}
</style>

148
pages/srm/plant_form.vue Normal file
View File

@ -0,0 +1,148 @@
<!-- 平台审批 -->
<template>
<view class="container">
<scroll-view scroll-y style="padding-bottom: 180rpx;background-color: #fff;">
<uni-forms v-model="form" label-width="150rpx" ref="customForm" :rules="customRules">
<ticketd :ticket_="form.ticket_"></ticketd>
<uni-forms-item label="日期" required>
<uni-datetime-picker type="date" :clear-icon="false" v-model="form.p_date" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="归口部门" required>
<uni-data-select
v-model="form.p_dept"
:localdata="deptList"
:disabled="mode=='show'"
@change="mdateChange"
></uni-data-select>
</uni-forms-item>
<uni-forms-item label="负责人" required>
<uni-easyinput v-model="form.charge" placeholder="请输入负责人" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="建设期" required>
<uni-easyinput v-model="form.const" placeholder="请输入建设期" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="省级平台">
<uni-data-checkbox v-model="form.province_p" :localdata="hobby" @change="typeChange"></uni-data-checkbox>
</uni-forms-item>
<uni-forms-item label="市级平台">
<uni-data-checkbox v-model="form.city_p" :localdata="hobby" @change="typeChange"></uni-data-checkbox>
</uni-forms-item>
<uni-forms-item label="平台基本情况与目标绩效" label-width="750" required>
</uni-forms-item>
<uni-forms-item label-width="100">
<textarea v-model="form.condition" placeholder-style="color:#efefef" placeholder="平台基本情况与目标绩效" style="width:100%; border: 2upx solid #e5e5e5;padding: 10upx;"/>
</uni-forms-item>
</uni-forms>
</scroll-view>
<view class="footer_fixed">
<ticketd_b :workflow_key="'wf_patent'" :title="form.filename + '-印章申请'" :t_id="form.id" :ticket_="form.ticket_"
@success="submitSuccess" :submit_b_func="submit_b_func" ref="ticketd_b_start"></ticketd_b>
</view>
</view>
</template>
<script>
import ticketd_b from "../wf/ticketd_b.vue"
import ticketd from "../wf/ticketd.vue"
import {actStateEnum} from "@/utils/enum.js"
export default {
components: { ticketd_b, ticketd },
data(){
return{
mode:"add",
t_id: null,
form:{
id:null,
file:"",
filename:"",
file_count:"",
is_lending:false,
contacts:"",
belong_dept:"",
ticket_:null,
},
type:0,
hobby: [
{text: '是',value: 'true'},
{text: '否',value: 'false'},
],
deptList:[],
header:"",
customRules: {
filename: {
rules: [{
required: true,
errorMessage: '姓名不能为空'
}]
},
age: {
rules: [{
required: true,
errorMessage: '年龄不能为空'
}]
},
},
}
},
async onLoad(options) {
let that = this;
that.form.id='';
that.mode = options.mode?options.mode:'show';
that.t_id = options.t_id?options.t_id:null;
if(that.mode != "add"){
if(that.t_id) {
that.form = await that.$api.sealItem(that.t_id);
if(that.form.ticket_.state_.type == 1 && that.form.create_by == uni.getStorageSync("userInfo").id ) {
that.mode = "edit";
}else{
that.mode = "show";
}
}else{
that.getDept();
}
}
},
methods:{
getDept(){
},
sealChange(){
console.log('seal1',this.seal1)
},
async submit_b_func(id){
let that = this;
that.$refs.customForm.validate().then(res => {
}).catch(err => {
console.log('err', err);
})
if (that.mode != 'show') {
if(that.form.id) {
await that.$api.patentUpdate(that.form.id, that.form)
}else{
let res = await that.$api.patentCreate(that.form)
that.form.id = res.id;
}
}
},
submitSuccess(){
uni.navigateTo({
url: "/pages/index/index"
})
},
}
}
</script>
<style scoped>
.uni-data-checklist .checklist-group .checklist-box{
margin: 10px 0!important;
}
.flex_file_picker>.uni-file-picker__files{
flex-direction: row;
}
.flex_file_picker{
width: 90px;
flex: none;
}
</style>

150
pages/srm/project_form.vue Normal file
View File

@ -0,0 +1,150 @@
<!-- 立项审批 -->
<template>
<view class="container">
<scroll-view scroll-y style="padding-bottom: 180rpx;background-color: #fff;">
<uni-forms v-model="form" label-width="150rpx" ref="customForm" :rules="customRules">
<ticketd :ticket_="form.ticket_"></ticketd>
<uni-forms-item label="立项日期" required>
<uni-datetime-picker type="date" :clear-icon="false" v-model="form.date" @change="dateChange"
v-if="mode!='show'"/>
<span v-else>{{form.date}}</span>
</uni-forms-item>
<uni-forms-item label="归口部门" required>
<uni-data-select
v-model="form.mroom"
:localdata="mroomList"
:disabled="mode=='show'"
@change="mdateChange"
></uni-data-select>
</uni-forms-item>
<uni-forms-item label="负责人" required>
<uni-easyinput v-model="form.author" placeholder="请输入负责人" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="建设期" required>
<uni-easyinput v-model="form.author" placeholder="请输入建设期" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="项目组员" required>
<uni-easyinput v-model="form.author" placeholder="请输入项目组员" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="项目预算" required>
<uni-easyinput v-model="form.author" placeholder="请输入项目预算" :disabled="mode=='show'"/>
</uni-forms-item>
<uni-forms-item label="立项类型">
<uni-data-checkbox multiple v-model="form.type" :localdata="hobby" @change="typeChange"></uni-data-checkbox>
</uni-forms-item>
<uni-forms-item label="平台基本情况与目标绩效" label-width="750" required>
</uni-forms-item>
<uni-forms-item label-width="100">
<textarea placeholder-style="color:#efefef" placeholder="平台基本情况与目标绩效" style="width:100%; border: 2upx solid #e5e5e5;padding: 10upx;"/>
</uni-forms-item>
</uni-forms>
</scroll-view>
<view class="footer_fixed">
<ticketd_b :workflow_key="'wf_patent'" :title="form.filename + '-印章申请'" :t_id="form.id" :ticket_="form.ticket_"
@success="submitSuccess" :submit_b_func="submit_b_func" ref="ticketd_b_start"></ticketd_b>
</view>
</view>
</template>
<script>
import ticketd_b from "../wf/ticketd_b.vue"
import ticketd from "../wf/ticketd.vue"
import {actStateEnum} from "@/utils/enum.js"
export default {
components: { ticketd_b, ticketd },
data(){
return{
mode:"add",
t_id: null,
form:{
id:null,
file:"",
filename:"",
file_count:"",
is_lending:false,
contacts:"",
belong_dept:"",
ticket_:null,
},
type:0,
hobby: [
{text: '省级项目',value: '省级项目'},
{text: '市级项目',value: '市级项目'},
{text: '自立项目',value: '自立项目'},
],
header:"",
customRules: {
filename: {
rules: [{
required: true,
errorMessage: '姓名不能为空'
}]
},
age: {
rules: [{
required: true,
errorMessage: '年龄不能为空'
}]
},
},
}
},
async onLoad(options) {
let that = this;
that.form.id='';
that.mode = options.mode?options.mode:'show';
that.t_id = options.t_id?options.t_id:null;
if(that.mode != "add"){
if(that.t_id) {
that.form = await that.$api.sealItem(that.t_id);
if(that.form.ticket_.state_.type == 1 && that.form.create_by == uni.getStorageSync("userInfo").id ) {
that.mode = "edit";
}else{
that.mode = "show";
}
}else{
that.form = uni.getStorageSync("currentBooking");
}
}
},
methods:{
sealChange(){
console.log('seal1',this.seal1)
},
async submit_b_func(id){
let that = this;
that.$refs.customForm.validate().then(res => {
}).catch(err => {
console.log('err', err);
})
if (that.mode != 'show') {
if(that.form.id) {
await that.$api.patentUpdate(that.form.id, that.form)
}else{
let res = await that.$api.patentCreate(that.form)
that.form.id = res.id;
}
}
},
submitSuccess(){
uni.navigateTo({
url: "/pages/index/index"
})
},
}
}
</script>
<style scoped>
.uni-data-checklist .checklist-group .checklist-box{
margin: 10px 0!important;
}
.flex_file_picker>.uni-file-picker__files{
flex-direction: row;
}
.flex_file_picker{
width: 90px;
flex: none;
}
</style>

View File

@ -85,6 +85,7 @@ const submit = async (transition_id) => {
} }
} }
if (props.ticket_?.id) { if (props.ticket_?.id) {
console.log('props.ticket_data',props.ticket_data)
let params = new Object(); let params = new Object();
params.transition = transition_id; params.transition = transition_id;
params.suggestion = suggestion.value; params.suggestion = suggestion.value;

View File

@ -187,6 +187,10 @@
dir: { dir: {
type: String, type: String,
default: '/' default: '/'
},
inde: {
type: Number,
default: 0
} }
}, },
data() { data() {
@ -414,7 +418,7 @@
this.$emit('select', { this.$emit('select', {
tempFiles: currentData, tempFiles: currentData,
tempFilePaths: filePaths tempFilePaths: filePaths
}) },this.inde)
res.tempFiles = files res.tempFiles = files
// //
if (!this.autoUpload || this.noSpace) { if (!this.autoUpload || this.noSpace) {

View File

@ -14,6 +14,8 @@ export default {
apkCheck: ()=>http('/system/apk/'), //apk检查 apkCheck: ()=>http('/system/apk/'), //apk检查
uploadFile:(data ) => http('/file/', 'POST', data),//上传文件 uploadFile:(data ) => http('/file/', 'POST', data),//上传文件
employeeList:(data) => http('/hrm/employee/', 'GET', data),
getTicket:(data) => http('/wf/ticket/', 'GET', data), getTicket:(data) => http('/wf/ticket/', 'GET', data),
getTicketItem:(id) => http(`/wf/ticket/${id}/`, 'GET'), getTicketItem:(id) => http(`/wf/ticket/${id}/`, 'GET'),
getTicketFlowLogs:(id) => http(`/wf/ticket/${id}/flowlogs/`, 'GET'), getTicketFlowLogs:(id) => http(`/wf/ticket/${id}/flowlogs/`, 'GET'),
@ -28,37 +30,48 @@ export default {
bookingList:(data) => http('/ofm/mroombooking/', 'GET', data), bookingList:(data) => http('/ofm/mroombooking/', 'GET', data),
bookingItem:(id,data) => http(`/ofm/mroombooking/${id}/`, 'GET', data), bookingItem:(id,data) => http(`/ofm/mroombooking/${id}/`, 'GET', data),
bookingCreate:(data) => http(`/ofm/mroombooking/`, 'POST', data), bookingCreate:(data) => http(`/ofm/mroombooking/`, 'POST', data),
bookingUpdate:(id,data) => http(`/ofm/mroombooking/${id}/`, 'PUT', data),
bookingDelete:(id) => http(`/ofm/mroombooking/${id}/`, 'DELETE'), bookingDelete:(id) => http(`/ofm/mroombooking/${id}/`, 'DELETE'),
bookingSlot:(data) => http(`/ofm/mroomslot/`, 'GET' , data), bookingSlot:(data) => http(`/ofm/mroomslot/`, 'GET' , data),
//印章外出 //印章申请
sealList:(data) => http(`/ofm/lendingseal/`, 'GET' , data), sealList:(data) => http(`/ofm/lendingseal/`, 'GET' , data),
sealCreate:(data) => http(`/ofm/lendingseal/`, 'POST' , data), sealCreate:(data) => http(`/ofm/lendingseal/`, 'POST' , data),
sealItem:(id,data) => http(`/ofm/lendingseal/${id}/`, 'GET', data), sealItem:(id,data) => http(`/ofm/lendingseal/${id}/`, 'GET', data),
sealUpdate:(id,data) => http(`/ofm/lendingseal/${id}/`, 'PUT', data),
sealDelete:(id) => http(`/ofm/lendingseal/${id}/`, 'DELETE'), sealDelete:(id) => http(`/ofm/lendingseal/${id}/`, 'DELETE'),
//文件借阅 //档案借阅
fileRecord:(data) => http(`/ofm/filerecord/`, 'GET' , data),
borrowList:(data) => http(`/ofm/fileborrow/`, 'GET' , data), borrowList:(data) => http(`/ofm/fileborrow/`, 'GET' , data),
borrowCreate:(data) => http(`/ofm/fileborrow/`, 'POST' , data), borrowCreate:(data) => http(`/ofm/fileborrow/`, 'POST' , data),
borrowItem:(id,data) => http(`/ofm/fileborrow/${id}/`, 'GET', data), borrowItem:(id,data) => http(`/ofm/fileborrow/${id}/`, 'GET', data),
borrowUpdate:(id,data) => http(`/ofm/fileborrow/${id}/`, 'PUT', data),
borrowDelete:(id) => http(`/ofm/fileborrow/${id}/`, 'DELETE'), borrowDelete:(id) => http(`/ofm/fileborrow/${id}/`, 'DELETE'),
//专利 //宣传报道
patentList:(data) => http(`/ofm/patentinfo/`, 'GET' , data),
patentCreate:(data) => http(`/ofm/patentinfo/`, 'POST' , data),
patentItem:(id,data) => http(`/ofm/patentinfo/${id}/`, 'GET', data),
patentUpdate:(id,data) => http(`/ofm/patentinfo/${id}/`, 'PUT', data),
patentDelete:(id) => http(`/ofm/patentinfo/${id}/`, 'DELETE'),
//公告
publicList:(data) => http(`/ofm/publicity/`, 'GET' , data), publicList:(data) => http(`/ofm/publicity/`, 'GET' , data),
publicCreate:(data) => http(`/ofm/publicity/`, 'POST' , data), publicCreate:(data) => http(`/ofm/publicity/`, 'POST' , data),
publicItem:(id,data) => http(`/ofm/publicity/${id}/`, 'GET', data), publicItem:(id,data) => http(`/ofm/publicity/${id}/`, 'GET', data),
publicUpdate:(id,data) => http(`/ofm/publicity/${id}/`, 'PUT', data),
publicDelete:(id) => http(`/ofm/publicity/${id}/`, 'DELETE'), publicDelete:(id) => http(`/ofm/publicity/${id}/`, 'DELETE'),
//车辆 //用车申请
vehicleList:(data) => http(`/ofm/vehicle/`, 'GET' , data), vehicleList:(data) => http(`/ofm/vehicle/`, 'GET' , data),
vehicleCreate:(data) => http(`/ofm/vehicle/`, 'POST' , data), vehicleCreate:(data) => http(`/ofm/vehicle/`, 'POST' , data),
vehicleItem:(id,data) => http(`/ofm/vehicle/${id}/`, 'GET', data), vehicleItem:(id,data) => http(`/ofm/vehicle/${id}/`, 'GET', data),
vehicleUpdate:(id,data) => http(`/ofm/vehicle/${id}/`, 'PUT', data),
vehicleDelete:(id) => http(`/ofm/vehicle/${id}/`, 'DELETE'), vehicleDelete:(id) => http(`/ofm/vehicle/${id}/`, 'DELETE'),
//专利审批
patentList:(data) => http(`/srm/patentinfo/`, 'GET' , data),
patentCreate:(data) => http(`/srm/patentinfo/`, 'POST' , data),
patentItem:(id,data) => http(`/srm/patentinfo/${id}/`, 'GET', data),
patentDelete:(id) => http(`/srm/patentinfo/${id}/`, 'DELETE'),
//论文申密
paperseList:(data) => http(`/srm/paperse/`, 'GET' , data),
paperseCreate:(data) => http(`/srm/paperse/`, 'POST' , data),
paperseItem:(id,data) => http(`/srm/paperse/${id}/`, 'GET', data),
paperseDelete:(id) => http(`/srm/paperse/${id}/`, 'DELETE'),
//平台审批
pfList:(data) => http(`/srm/pf/`, 'GET' , data),
pfCreate:(data) => http(`/srm/pf/`, 'POST' , data),
pfItem:(id,data) => http(`/srm/pf/${id}/`, 'GET', data),
pfDelete:(id) => http(`/srm/pf/${id}/`, 'DELETE'),
//离职申请
resignationList:(data) => http(`/hrm/resignation/`, 'GET' , data),
resignationCreate:(data) => http(`/hrm/resignation/`, 'POST' , data),
resignationItem:(id,data) => http(`/hrm/resignation/${id}/`, 'GET', data),
resignationDelete:(id) => http(`/hrm/resignation/${id}/`, 'DELETE'),
} }