This commit is contained in:
shijing 2025-12-26 15:35:11 +08:00
commit ff6a9ad2c6
20 changed files with 479 additions and 76 deletions

View File

@ -231,4 +231,39 @@ export default {
}
},
},
empjoin: {
list: {
name: "人员交接",
req: async function(data){
return await http.get(
`${config.API_URL}/hrm/empjoin/`,
data
);
}
},
item: {
name: "人员交接申请",
req: async function(id){
return await http.get(
`${config.API_URL}/hrm/empjoin/${id}/`,
);
}
},
create: {
name: "人员交接新增",
req: async function(data){
return await http.post(
`${config.API_URL}/hrm/empjoin/`,
data);
}
},
delete: {
name: "人员交接删除",
req: async function(id){
return await http.delete(
`${config.API_URL}/hrm/empjoin/${id}/`
);
}
},
},
}

View File

@ -28,7 +28,7 @@
:query="query"
@row-click="(row)=>{t_id=row.id;mode='show';drawerVisible=true;}"
>
<el-table-column label="卡片编号" prop="card_number" width="200" show-overflow-tooltip></el-table-column>
<el-table-column label="资产ID" prop="id" width="200" show-overflow-tooltip></el-table-column>
<el-table-column label="固定资产名称" prop="name" width="200" show-overflow-tooltip></el-table-column>
<el-table-column label="规格型号" prop="specification" width="200" show-overflow-tooltip></el-table-column>
<el-table-column label="资产类别" prop="cate_name" width="100" show-overflow-tooltip></el-table-column>

View File

@ -1,12 +1,13 @@
<template>
<el-container>
<el-header>
<div class="left-panel"></div>
<div class="left-panel">
<el-button type="primary" @click="handleAdd('入库')" v-auth="'assetlog.create'">资产入库</el-button>
</div>
<div class="right-panel">
<!-- <el-button type="primary" @click="handleAdd">新增</el-button> -->
<el-input
v-model="query.search"
placeholder="设备信息等"
placeholder="关键词"
clearable
@keyup.enter="$refs.table.refresh()"
></el-input>
@ -21,13 +22,13 @@
<el-main class="nopadding">
<scTable
ref="table"
:apiObj="API.em.repair.list"
:apiObj="API.asm.assetlog.list"
row-key="id"
stripe
:query="query"
@row-click="(row)=>{t_id=row.id;mode='show';drawerVisible=true;}"
@row-click="(row)=>{t_id=row.id;mode='show';drawerVisible=true;drawerTitle=row.type}"
>
<el-table-column label="设备" prop="equipment_fullname" width="300" show-overflow-tooltip></el-table-column>
<el-table-column label="操作类型" prop="type" width="100" show-overflow-tooltip></el-table-column>
<el-table-column label="流程状态" width="300" show-overflow-tooltip>
<template #default="scope">
<el-tag :type="actStateEnum[scope.row.ticket_?.act_state]?.type">
@ -35,21 +36,31 @@
</el-tag>
<el-tag type="info" effect="plain">{{ scope.row.ticket_?.state_.name }}</el-tag>
</template>
</el-table-column>`
<el-table-column label="故障类别" prop="fault_cate" width="100" show-overflow-tooltip></el-table-column>`
<el-table-column label="故障描述" prop="fault_description" show-overflow-tooltip></el-table-column>
<el-table-column label="维修人" prop="repair_user_name" width="100" show-overflow-tooltip></el-table-column>
<el-table-column label="维修开始时间" prop="repair_start_time" width="200" show-overflow-tooltip></el-table-column>
</el-table-column>
<el-table-column label="启用日期" prop="start_date" width="160" show-overflow-tooltip></el-table-column>
<el-table-column label="保管部门" prop="keep_dept_name" width="160" show-overflow-tooltip></el-table-column>`
<el-table-column label="保管人" prop="keeper_name" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="资产条数" width="80" show-overflow-tooltip>
<template #default="scope">
{{ scope.row.items?.length }}
</template>
</el-table-column>
<el-table-column label="创建时间" prop="create_time" show-overflow-tooltip></el-table-column>
</scTable>
</el-main>
</el-container>
<el-drawer :title="drawerTitle" v-model="drawerVisible" :size="'80%'" destroy-on-close>
<assetlogin_form :mode="mode" :t_id="t_id"></assetlogin_form>
</el-drawer>
</template>
<script setup>
import { ref } from 'vue'
import API from '@/api'
import { actStateEnum, interveneTypeEnum } from "@/utils/enum.js";
import assetlogin_form from './assetlogin_form.vue'
const query = ref({});
const drawerVisible = ref(false);
const drawerTitle = ref('资产入库');
const mode = ref('add');
const t_id = ref(null);
const handleAdd = () => {

View File

@ -18,9 +18,9 @@
<el-table-column type="selection" width="50" />
<el-table-column label="设备名称" prop="name" width="200" show-overflow-tooltip>
</el-table-column>
<el-table-column label="设备位号" prop="number">
<el-table-column label="设备位号" prop="number" show-overflow-tooltip>
</el-table-column>
<el-table-column label="型号规格" prop="model">
<el-table-column label="型号规格" prop="model" show-overflow-tooltip>
</el-table-column>
<el-table-column label="生产厂" prop="factory" show-overflow-tooltip>
</el-table-column>
@ -40,12 +40,11 @@
</el-table-column>
<el-table-column label="购置日期" prop="buy_date">
</el-table-column>
<el-table-column label="工段运行的方式" prop="indicate_mgroup_running">
<el-table-column label="运行规则" prop="indicate_mgroup_running" width="100">
</el-table-column>
<el-table-column label="设备负责人" prop="device_people" show-overflow-tooltip>
</el-table-column>
<el-table-column label="更新时间" prop="update_time"></el-table-column>
<el-table-column label="更新时间" prop="update_time" width="150"></el-table-column>
<el-table-column label="状态">
<template #default="scope">
<el-tag v-if="scope.row.state === 10" type="success">
@ -77,9 +76,6 @@
<el-table-column label="安装位置" show-overflow-tooltip>
<template #default="scope">{{ scope.row.place }}</template>
</el-table-column>
<el-table-column label="维修记录" show-overflow-tooltip>
<template #default="scope">{{ scope.row.description }}</template>
</el-table-column>
<el-table-column label="操作" fixed="right" align="left" width="180">
<template #default="scope">
<el-button link type="success" @click="table_print(scope.row)">打印</el-button>

View File

@ -22,11 +22,11 @@
<el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe :params="query">
<el-table-column type="selection" width="50" />
<el-table-column label="设备名称" prop="name" show-overflow-tooltip>
<el-table-column label="设备名称" prop="name" width="200" show-overflow-tooltip>
</el-table-column>
<el-table-column label="计量编号" prop="number">
<el-table-column label="计量编号" prop="number" show-overflow-tooltip>
</el-table-column>
<el-table-column label="型号规格" prop="model">
<el-table-column label="型号规格" prop="model" show-overflow-tooltip>
</el-table-column>
<el-table-column label="仪表类型" prop="meter_type">
</el-table-column>
@ -34,11 +34,11 @@
</el-table-column>
<el-table-column label="出厂编号" prop="number_factory">
</el-table-column>
<el-table-column label="启用日期" prop="use_date">
<el-table-column label="启用日期" prop="use_date" width="100">
</el-table-column>
<el-table-column label="用电功率(kw)" prop="power_kw">
<el-table-column label="用电功率(kw)" prop="power_kw" width="100">
</el-table-column>
<el-table-column label="设备重要性" prop="importance">
<el-table-column label="设备重要性" prop="importance" width="100">
<template #default="scope">
<el-tag v-if="scope.row.importance === 10" type="A">
{{ importance[scope.row.importance] }}
@ -51,14 +51,14 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="工段运行" prop="indicate_mgroup_running">
<el-table-column label="运行规则" prop="indicate_mgroup_running" width="100">
</el-table-column>
<el-table-column label="生产厂家" prop="factory" show-overflow-tooltip>
</el-table-column>
<el-table-column label="检定/校准" prop="check_date" ></el-table-column>
<el-table-column label="检定周期/月" prop="cycle" width="70">
<el-table-column label="检定/校准" prop="check_date" width="100"></el-table-column>
<el-table-column label="检定周期/月" prop="cycle" width="100">
</el-table-column>
<el-table-column label="设备状态" width="70">
<el-table-column label="设备状态" width="100">
<template #default="scope">
<el-tag v-if="scope.row.state === 10" type="success">
{{ state_[scope.row.state] }}
@ -78,10 +78,10 @@
</el-table-column>
<el-table-column label="安装位置" prop="place" show-overflow-tooltip>
</el-table-column>
<el-table-column label="设备负责人" prop="device_people" show-overflow-tooltip>
<el-table-column label="设备负责人" prop="device_people" width="100" show-overflow-tooltip>
</el-table-column>
<el-table-column label="更新时间" prop="update_time"></el-table-column>
<el-table-column label="临期预警(天)" prop="check_days_number"></el-table-column>
<el-table-column label="更新时间" prop="update_time" width="150"></el-table-column>
<el-table-column label="临期预警(天)" prop="check_days_number" width="100"></el-table-column>
<el-table-column label="检定状态" prop="state_measure" width="100">
<template #default="scope">
<el-tag v-if="scope.row.state_measure === 10" type="success">
@ -98,7 +98,7 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="下次检定/校准" prop="next_check_date" width="70">
<el-table-column label="下次检定/校准" prop="next_check_date" width="120">
</el-table-column>
<el-table-column label="备注" show-overflow-tooltip>
<template #default="scope">{{ scope.row.description }}</template>

48
src/views/hrm/empjoin.vue Normal file
View File

@ -0,0 +1,48 @@
<template>
<el-container>
<el-header>
<div class="left-panel">
<el-button type="primary" @click="handleAdd">新增</el-button>
</div>
</el-header>
<el-main class="nopadding">
<scTable
ref="table"
:apiObj="API.hrm.empneed.list"
row-key="id"
stripe
:query="query"
@row-click="(row)=>{t_id=row.id;mode='show';drawerVisible=true;}"
>
<el-table-column label="部门" prop="dept_need_name" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="入职日期" prop="join_date" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="审批状态" width="200" show-overflow-tooltip>
<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>
</scTable>
</el-main>
</el-container>
<el-drawer title="员工需求审核" v-model="drawerVisible" :size="'80%'" destroy-on-close>
<empneed_form :mode="mode" :t_id="t_id"></empneed_form>
</el-drawer>
</template>
<script setup>
import { ref } from 'vue'
import API from '@/api'
import empneed_form from './empneed_form.vue'
import { actStateEnum, interveneTypeEnum } from "@/utils/enum.js";
const query = ref({});
const drawerVisible = ref(false);
const mode = ref('add');
const t_id = ref(null);
const handleAdd = () => {
mode.value = 'add';
drawerVisible.value = true;
}
</script>

View File

@ -0,0 +1,234 @@
<template>
<el-container>
<el-main class="nopadding">
<el-form label-width="80px" :model="formData" style="padding: 20px;" :disabled="localMode === 'show'">
<el-form-item label="需求部门" required>
<el-cascader
v-model="formData.dept_need"
:options="group"
:props="groupsProps"
:show-all-levels="false"
clearable
style="width: 220px"
></el-cascader>
</el-form-item>
<el-form-item label="日期" required>
<el-date-picker
v-model="formData.join_date"
type="date"
placeholder="日期"
value-format="YYYY-MM-DD"
:readonly="localMode === 'show'"
></el-date-picker>
</el-form-item>
</el-form>
<sc-form-table
v-model="formData.person"
:addTemplate="addTemplate"
:hideAdd="hideAdd"
:hideDelete="hideDelete"
placeholder="暂无数据"
>
<el-table-column prop="name" label="姓名" min-width="150">
<template #default="scope">
<el-input
v-model="scope.row.name"
placeholder="请输入姓名"
></el-input>
</template>
</el-table-column>
<el-table-column prop="gender" label="性别" min-width="150">
<template #default="scope">
<el-select v-model="scope.row.gender" placeholder="请选择">
<el-option label="男" :value="1"></el-option>
<el-option label="女" :value="2"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="IDcard" label="身份证号" min-width="150">
<template #default="scope">
<el-input
v-model="scope.row.IDcard"
placeholder="请输入身份证号"
></el-input>
</template>
</el-table-column>
<el-table-column prop="phone" label="手机号" min-width="150">
<template #default="scope">
<el-input
v-model="scope.row.phone"
placeholder="请输手机号"
></el-input>
</template>
</el-table-column>
<el-table-column prop="note" label="备注" min-width="150">
<template #default="scope">
<el-input
v-model="scope.row.note"
placeholder="请输入备注"
></el-input>
</template>
</el-table-column>
<el-table-column prop="post" label="岗位" min-width="150" v-if="['交接部门负责人','结束'].includes(formData.ticket_?.state_?.name)">
<template #default="scope">
<xtSelect
:apiObj="apiObjPost"
v-model="scope.row.post"
v-model:label="scope.row.post_name"
style="width: 150px"
>
<el-table-column label="名称" prop="name"></el-table-column>
</xtSelect>
</template>
</el-table-column>
</sc-form-table>
<el-footer>
<el-button type="danger"
v-if="localMode=='edit'"
style="margin-right: 4px;"
@click="handleDel"
:loading="saveLoading"
>删除</el-button>
<ticketd_b
v-if = "formData.ticket_ && localMode=='show'"
:t_id="formData.id"
:ticket_="formData.ticket_"
:ticket_data="ticket_data"
@success="$emit('success', localMode)"
ref="ticketd_b"
></ticketd_b>
<el-button
v-if="localMode!='show'"
type="primary"
style="margin-right: 4px;"
@click="handleSave"
:loading="saveLoading"
>提交审批</el-button>
</el-footer>
</el-main>
<el-aside width="20%" v-if="formData.ticket_">
<ticketd :ticket_="formData.ticket_" @success="$emit('success')"></ticketd>
</el-aside>
</el-container>
</template>
<script>
import ticketd_b from "@/views/wf/ticketd_b.vue";
import ticketd from '@/views/wf/ticketd.vue';
import { genTree } from "@/utils/verificate";
export default {
name: 'EnpJoinForm',
components: {
ticketd_b,
ticketd
},
props: {
mode: {
type: String,
default: 'show'
},
t_id: {
type: String,
default: ""
}
},
data() {
return {
formData: {
person: [],
},
ticket_data: {},
localMode: this.mode,
saveLoading: false,
group:[],
post:[],
apiObjPost: this.$API.system.post.list,
hideAdd:false,
hideDelete:false,
addTemplate: {
name: "",
gender: "",
age: "",
phone: "",
note: "",
},
groupsProps: {
multiple: false,
emitPath: false,
checkStrictly: true,
},
}
},
watch: {
formData: {
handler(val){
Object.assign(this.ticket_data,{
person: val.person,
})
},
deep: true,
}
},
mounted() {
this.getGroup();
if (this.t_id) {
this.getTid();
} else {
this.localMode = "add";
}
},
methods: {
async getTid() {
try {
let res = await this.$API.hrm.empjoin.item.req(this.t_id);
this.formData = res;
if (res.ticket_ && res.ticket_.state_.type == 1 && res.create_by == this.$TOOL.data.get("USER_INFO").id) {
this.localMode = "edit";
}
} catch (error) {
console.error('获取数据失败:', error);
}
},
async getGroup() {
let res = await this.$API.system.dept.list.req({ page: 0 });
this.group = genTree(res);
},
async getPost() {
let res = await this.$API.hrm.post.list.req({ page: 0 });
this.post = res;
},
handleDel() {
this.$confirm(`确定删除吗?`, "提示", {
type: "warning",
})
.then(()=>{
this.$API.hrm.empjoin.delete.req(this.formData.id).then(res=>{
this.$message.success("删除成功");
this.$emit('success');
})
})
},
async handleSave() {
if (this.localMode == "add") {
try {
console.log('formData', this.formData);
let res = await this.$API.hrm.empjoin.create.req(this.formData);
this.$message.success("提交成功");
this.$emit('success', this.localMode);
} catch (error) {
console.error('提交申请失败:', error);
throw error;
}
} else if (this.localMode == "edit") {
this.$message.error("不支持编辑");
}
},
handleQuery() {
this.$refs.table.queryData(this.query);
},
}
}
</script>

View File

@ -24,14 +24,14 @@
</template>
</el-table-column>
<el-table-column label="需求岗位" prop="post_name" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="需求岗位" prop="post_need" width="120" show-overflow-tooltip></el-table-column>
<el-table-column label="需求人数" prop="count_need" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="工资报酬" prop="salary" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="到岗日期" prop="arrival_date" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="申请理由" prop="reason" width="100" show-overflow-tooltip></el-table-column>
<el-table-column label="岗位人员职责描述" prop="duty" width="100" show-overflow-tooltip></el-table-column>
<el-table-column label="到岗日期" prop="arrival_date" width="120" show-overflow-tooltip></el-table-column>
<el-table-column label="岗位人员职责描述" prop="duty" width="130" show-overflow-tooltip></el-table-column>
<el-table-column label="性别要求" prop="gender" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="学历要求" prop="education" width="80" show-overflow-tooltip></el-table-column>
<el-table-column label="申请理由" prop="reason" width="150" show-overflow-tooltip></el-table-column>
<el-table-column label="相关专业及技能要求" prop="professional_requirement" width="200" show-overflow-tooltip></el-table-column>
</scTable>
</el-main>
@ -43,7 +43,7 @@
<script setup>
import { ref } from 'vue'
import API from '@/api'
import empneed_form from './enpneed_form.vue'
import empneed_form from './empneed_form.vue'
import { actStateEnum, interveneTypeEnum } from "@/utils/enum.js";
const query = ref({});
const drawerVisible = ref(false);

View File

@ -54,15 +54,24 @@
:readonly="localMode === 'show'"
></el-date-picker>
</el-form-item>
<el-form-item label="申请理由" required>
<el-select
v-model="formData.reason"
placeholder="请选择申请理由"
clearable
style="width: 300px"
>
<el-option label="新增人员" :value="0" />
<el-option label="该岗原人员离职或辞职或辞退需补充" :value="1" />
<el-option label="其他原因" :value="2" />
</el-select>
</el-form-item>
<el-form-item label="职责描述" required>
<el-input v-model="formData.duty"></el-input>
</el-form-item>
<el-form-item label="相关专业及技能要求" required>
<el-input v-model="formData.professional_requirement" type="textarea" :rows="3"></el-input>
</el-form-item>
<el-form-item label="申请理由" required>
<el-input v-model="formData.reason" type="textarea" :rows="3"></el-input>
</el-form-item>
</el-form>
<el-footer>
<el-button type="danger"
@ -72,14 +81,14 @@
:loading="saveLoading"
>删除</el-button>
<ticketd_b
v-if = "formData.ticket_"
v-if = "formData.ticket_ && localMode=='show'"
:t_id="formData.id"
:ticket_="formData.ticket_"
@success="$emit('success', localMode)"
ref="ticketd_b"
></ticketd_b>
<el-button
v-else
v-if="localMode!='show'"
type="primary"
style="margin-right: 4px;"
@click="handleSave"
@ -183,7 +192,7 @@ export default {
this.$message.success("提交成功");
this.$emit('success', this.localMode);
} catch (error) {
console.error('提交离职申请失败:', error);
console.error('提交人员需求申请失败:', error);
throw error;
}
} else if (this.localMode == "edit") {

View File

@ -170,6 +170,9 @@ export default {
reciver: "",
remark: ""
},
rules: {
name: [{ required: true, message: "资料名称", trigger: "blur" }],
},
};
},
methods: {

View File

@ -8,7 +8,7 @@
label-width="100px"
label-position="left"
>
<el-form-item label="档案名称">
<el-form-item label="档案名称" prop="borrow_file">
<xtSelect
:apiObj="apiObjM2"
:multiple = "true"
@ -111,9 +111,12 @@ export default {
fileList: [],
ticket_data: {},
rules: {
file_name: [
{ required: true, message: "请选择档案", trigger: "blur" },
],
borrow_file: [{ required: true, message: "请选择档案", trigger: "change" }],
contacts: [{ required: true, message: "请填写手机号", trigger: "blur" }],
borrow_date: [{ required: true, message: "请选择借阅时间", trigger: "change" }],
return_date: [{ required: true, message: "请选择归还时间", trigger: "change" }],
count: [{ required: true, message: "请选择借阅数量", trigger: "change" }],
remark: [{ required: true, message: "请选择用途", trigger: "blur" }],
},
};
},

View File

@ -11,7 +11,7 @@
<el-form-item label="送审稿件标题" prop="title">
<el-input v-model="addForm.title" clearable :disabled="localMode ==='show'"></el-input>
</el-form-item>
<el-form-item label="文件内容">
<el-form-item label="文件内容" prop="pfile">
<sc-upload-file
v-model="addForm.pfile"
:multiple="false"
@ -175,9 +175,19 @@ export default {
addForm:{},
localMode : this.mode,
rules: {
file_name: [
{ required: true, message: "请选择档案", trigger: "blur" },
],
title: [{ required: true, message: "送审稿件标题", trigger: "blur" }],
pfile: [{ required: true, message: "文件内容", trigger: "blur" }],
participants: [{ required: true, message: "所有撰稿人", trigger: "blur" }],
pub_dept: [{ required: true, message: "部室/研究院", trigger: "blur" }],
level: [{ required: true, message: "第一撰稿人涉密等级", trigger: "blur" }],
content: [{ required: true, message: "稿件内容涉及", trigger: "blur" }],
report_purpose: [{ required: true, message: "宣传报道目的", trigger: "blur" }],
channel: [{ required: true, message: "宣传渠道", trigger: "blur" }],
review: [{ required: true, message: "第一撰稿人自审", trigger: "blur" }],
dept_opinion: [{ required: true, message: "所在部室定密意见", trigger: "blur" }],
dept_opinion_review: [{ required: true, message: "综合管理部审查意见", trigger: "blur" }],
publicity_opinion: [{ required: true, message: "总经理审查意见", trigger: "blur" }],
},
}
},

View File

@ -85,7 +85,7 @@
<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>
<el-tag type="info" effect="plain">{{ scope.row.ticket_?.state_?.name }}</el-tag>
</template>
</el-table-column>

View File

@ -9,7 +9,7 @@
<el-input v-model="localForm.contacts" clearable :disabled="localMode ==='show'"></el-input>
</el-form-item>
<el-form-item label="印章类型">
<el-form-item label="印章类型" prop="seal">
<el-checkbox-group v-model="localForm.seal" :disabled="localMode ==='show'">
<el-checkbox label="公章"></el-checkbox>
<el-checkbox label="法人章"></el-checkbox>
@ -25,7 +25,7 @@
style="margin-top: 10;"
></el-input>
</el-form-item>
<el-form-item label="是否借出">
<el-form-item label="是否借出" prop="is_lending">
<el-radio-group v-model="localForm.is_lending" :disabled="localMode ==='show'">
<el-radio :label="true"></el-radio>
<el-radio :label="false"></el-radio>
@ -45,7 +45,7 @@
</el-date-picker>
</div>
</el-form-item>
<el-form-item label="实际归还日期"
<el-form-item label="实际归还日期" prop="actual_return_date"
v-if="['借用中', '结束'].includes(localForm.ticket_?.state_?.name)">
<el-date-picker
v-model="localForm.actual_return_date"
@ -67,7 +67,7 @@
:disabled="localMode ==='show'">
</el-input>
</el-form-item>
<el-form-item label="文件内容">
<el-form-item label="文件内容" prop="file">
<sc-upload-file
v-model="localForm.file"
:multiple="false"
@ -133,6 +133,12 @@ export default {
timeRange: [],
rules: {
filename: [{ required: true, message: "请输入文件名称", trigger: "blur" }],
contacts: [{ required: true, message: "请输入手机号", trigger: "blur" }],
seal: [{ required: true, message: "请选择印章类型", trigger: "blur" }],
is_lending: [{ required: true, message: "请选择是否借出", trigger: "change" }],
actual_return_date: [{ required: true, message: "请选择实际归还日期", trigger: "change" }],
file: [{ required: true, message: "请上传用印文件", trigger: "change" }],
file_count: [{ required: true, message: "请输入用印份数", trigger: "change" }]
},
};
},
@ -157,6 +163,7 @@ export default {
},
async submit_b_func() {
let that = this;
if(that.localMode == "add") {
let res = await that.$API.ofm.lendingseal.create.req(that.localForm);
that.localForm.id = res.id;
@ -170,7 +177,7 @@ export default {
that.$API.ofm.lendingseal.item.req(that.t_id).then(res=>{
that.localForm = res;
that.initTimeRange();
if(res.ticket_.state_.type == 1 && res.create_by == that.$TOOL.data.get("USER_INFO").id ) {
if(res.ticket_&& res.ticket_.state_.type == 1 && res.create_by == that.$TOOL.data.get("USER_INFO").id ) {
that.localMode = "edit";
}else{
that.localMode = "show";

View File

@ -38,13 +38,13 @@
<el-input v-model="form.location" clearable :readonly="localMode ==='show'"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<!-- <el-col :span="12">
<el-form-item label="出发公里数" prop="start_km">
<el-input v-model="form.start_km" clearable :readonly="localMode ==='show'" type="number">
<template #append>km</template>
</el-input>
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="12">
<el-form-item label="归还公里数" prop="end_km" v-if="form.ticket_?.state_?.name=='用车中'">
<el-input v-model="form.end_km" clearable type="number">
@ -137,7 +137,13 @@ export default {
rules: {
vehreg: [{ required: true, message: "请输入车辆名称", trigger: "blur" }],
vdate: [{ required: true, message: "请选择时间", trigger: "blur" }],
// title: [{ required: true, message: "", trigger: "blur" }],
reason: [{ required: true, message: "请输入用车事由", trigger: "blur" }],
is_city: [{ required: true, message: "请输入用车范围", trigger: "change" }],
location: [{ required: true, message: "请输入出发地点", trigger: "blur" }],
end_km: [{ required: true, message: "请输入归还公里数", trigger: "change" }],
via: [{ required: true, message: "请输入途经地点", trigger: "blur" }],
destination: [{ required: true, message: "请输入到达地点", trigger: "blur" }],
},
timesList:[
{value:0,label:'00:00-00:30',isSelect:false,sloted:false},

View File

@ -138,9 +138,13 @@ export default {
ticket_:null
},
rules: {
filename: [{ required: true, message: "请输入文件名称", trigger: "blur" }],
paper_name: [{ required: true, message: "请输入文件名称", trigger: "blur" }],
orginization: [{ required: true, message: "请输入发布单位", trigger: "blur" }],
publication_name: [{ required: true, message: "请输入拟投期刊名称", trigger: "blur" }],
author: [{ required: true, message: "请输入文件作者", trigger: "blur" }],
paper_type: [{ required: true, message: "请输入拟发表文章类型", trigger: "change" }],
affiliated_projects: [{ required: true, message: "请输入所属项目", trigger: "blur" }],
},
};
},
mounted() {

View File

@ -26,7 +26,7 @@
<el-radio :label="false"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="拟申请地域">
<el-form-item label="拟申请地域" prop="area">
<el-radio-group v-model="localForm.area" :disabled="localMode ==='show'">
<el-radio label="国内申请" value="Domestic"></el-radio>
<el-radio label="国外申请" value="Foreign"></el-radio>
@ -132,7 +132,11 @@ export default {
ticketTitle: "专利申请",
localMode : this.mode,
rules: {
filename: [{ required: true, message: "请输入文件名称", trigger: "blur" }],
name: [{ required: true, message: "拟申请专利名称", trigger: "blur" }],
author: [{ required: true, message: "请输入发明人", trigger: "blur" }],
organization: [{ required: true, message: "请输入发布单位", trigger: "blur" }],
type: [{ required: true, message: "请输专利类型", trigger: "blur" }],
area: [{ required: true, message: "拟申请地域", trigger: "change" }],
},
localForm:{
name: "",
@ -190,7 +194,7 @@ export default {
if (that.t_id) {
that.$API.srm.patentinfo.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 ) {
if(res.ticket_.state_ && res.ticket_.state_.type == 1 && res.create_by == that.$TOOL.data.get("USER_INFO").id ) {
that.localMode = "edit";
}else{
that.localMode = "show";

View File

@ -276,6 +276,15 @@ export default {
"reexamination":"复审",
"authorized":"授权"
},
rules: {
patent: [{ required: true, message: "专利名称", trigger: "blur" }],
pc_type: [{ required: true, message: "专利类型", trigger: "blur" }],
organization: [{ required: true, message: "单位", trigger: "blur" }],
inventors: [{ required: true, message: "发明人", trigger: "blur" }],
affiliated_platforms: [{ required: true, message: "归属平台", trigger: "blur" }],
affiliated_projects: [{ required: true, message: "归属项目", trigger: "blur" }],
},
query: {},
editId: null,
isSaving: false,

View File

@ -17,8 +17,15 @@
>
</el-date-picker>
</el-form-item>
<el-form-item label="归口部门" prop="p_dept">
<el-input v-model="localForm.p_dept" clearable :disabled="localMode ==='show'"></el-input>
<el-form-item label="需求部门" prop="p_dept">
<el-cascader
v-model="localForm.p_dept"
:options="group"
:props="groupsProps"
:show-all-levels="false"
clearable
style="width: 220px"
></el-cascader>
</el-form-item>
<el-form-item label="建设期" prop="const">
<el-input v-model="localForm.const" clearable ></el-input>
@ -74,7 +81,9 @@
<script>
import ticketd_b from "@/views/wf/ticketd_b.vue";
import ticketd from '@/views/wf/ticketd.vue'
import ticketd from '@/views/wf/ticketd.vue';
import { genTree } from "@/utils/verificate";
export default {
props: {
mode: { type: String, default: "show" }, // add / edit / show
@ -89,14 +98,25 @@ export default {
ticket_data: {},
ticketTitle: "平台审批",
localMode : this.mode,
rules: {
filename: [{ required: true, message: "请输入文件名称", trigger: "blur" }],
localForm: {},
groupsProps: {
multiple: false,
emitPath: false,
checkStrictly: true,
},
group:[],
rules: {
name: [{required: true, message: "请输入名称", trigger: "blur"}],
p_dept: [{required: true, message: "请输入部门", trigger: "change"}],
city_p: [{required: true, message: "请选择市级平台", trigger: "change"}],
const: [{required: true, message: "建设期", trigger: "blur"}],
condition: [{required: true, message: "平台基本情况与目标绩效", trigger: "change"}]
},
localForm: {}
};
},
mounted(){
let that=this
this.getGroup();
if(that.t_id){
that.getTid();
}else{
@ -117,6 +137,10 @@ export default {
await that.$API.srm.platform.update.req(that.localForm.id, that.localForm);
}
},
async getGroup() {
let res = await this.$API.system.dept.list.req({ page: 0 });
this.group = genTree(res);
},
getTid (){
var that = this;
if (that.t_id) {

View File

@ -45,7 +45,7 @@
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="身份证号">
<el-input v-model="form.id_number" disabled></el-input>
<el-input v-model="form.id_number"></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
@ -61,12 +61,12 @@
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="证件照">
<sc-upload v-model="form.photo" title="证件照" :disabled="true"></sc-upload>
<sc-upload v-model="form.photo" title="证件照"></sc-upload>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="签名">
<sc-upload v-model="form.signature" title="证件照" :disabled="true"></sc-upload>
<sc-upload v-model="form.signature" title="签名"></sc-upload>
<!-- <el-image :src="form.signature" style="width: 148px; height: 80px"></el-image> -->
</el-form-item>
</el-col>