This commit is contained in:
caoqianming 2022-11-01 14:09:14 +08:00
commit ee23a453d5
6 changed files with 742 additions and 685 deletions

View File

@ -342,7 +342,12 @@ export default {
//
handleSaveSuccess(data, mode) {
if (mode == "add") {
this.$refs.tableoperation.refresh();
this.$router.push({
name: "opl",
query: {
id: data.id,
},
});
} else if (mode == "edit") {
this.$refs.tableoperation.refresh();
}

View File

@ -194,7 +194,7 @@ export default {
methods: {
//,
getDept() {
this.$API.system.dept.list.req({ page: 0 }).then((res) => {
this.$API.system.dept.list.req({ page: 0 , type__in: 'dept, rparty'}).then((res) => {
this.deptoptions = genTree(res);
});
@ -243,7 +243,7 @@ export default {
var res;
if (this.mode == "add") {
res = await this.$API.opm.operation.create.req(this.form);
console.log(this.form);
this.form.id = res.id;
} else if (this.mode == "edit") {
res = await this.$API.opm.operation.update.req(
this.form.id,

View File

@ -88,21 +88,6 @@
<el-table-column label="项目类型" prop="type" width="180">
<template #default="scope">{{ type_[scope.row.type] }} </template>
</el-table-column>
<el-table-column
label="合同编号"
prop="contract_number"
width="180"
></el-table-column>
<el-table-column
label="进厂时间"
prop="come_time"
width="180"
></el-table-column>
<el-table-column
label="离厂时间"
prop="leave_time"
width="180"
></el-table-column>
<el-table-column label="状态" prop="state" width="100">
<template #default="scope">{{ state_[scope.row.state] }}</template>
</el-table-column>
@ -135,6 +120,21 @@
</el-tag>
</template>
</el-table-column>
<el-table-column
label="进厂时间"
prop="come_time"
width="180"
></el-table-column>
<el-table-column
label="离厂时间"
prop="leave_time"
width="180"
></el-table-column>
<el-table-column
label="合同编号"
prop="contract_number"
width="180"
></el-table-column>
<el-table-column
label="所属部门"
prop="belong_dept_name"
@ -193,13 +193,13 @@
</el-main>
</el-container>
<save-dialog
<!-- <save-dialog
v-if="dialog.save"
ref="saveDialog"
@success="handleSaveSuccess"
@closed="dialog.save = false"
>
</save-dialog>
</save-dialog> -->
<show-dialog
v-if="dialog.show"
ref="showDialog"
@ -207,13 +207,13 @@
></show-dialog>
</template>
<script>
import saveDialog from "./rpj_form.vue";
// import saveDialog from "./rpj_form.vue";
import showDialog from "./rpj_show.vue";
export default {
name: "remployee",
components: {
saveDialog,
// saveDialog,
showDialog,
},
data() {
@ -304,9 +304,12 @@ export default {
methods: {
//
add() {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add");
// this.dialog.save = true;
// this.$nextTick(() => {
// this.$refs.saveDialog.open("add");
// });
this.$router.push({
name: "rpjadd",
});
},
//

View File

@ -22,17 +22,18 @@
<el-form
ref="dialogForm"
:model="rpjform"
:rules="rules"
label-width="110px"
style="margin: 40px 40px 40px 40px"
>
<el-row>
<el-col :md="24" :sm="12" :xs="24">
<el-form-item label="名称">
<el-form-item label="名称" prop="name">
<el-input v-model="rpjform.name" type="text" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="24" :sm="12" :xs="24">
<el-form-item label="项目类型">
<el-form-item label="项目类型" prop="type">
<el-select v-model="rpjform.type" style="width: 100%">
<el-option
v-for="item in typeOptions"
@ -44,7 +45,7 @@
</el-form-item>
</el-col>
<el-col :md="24" :sm="12" :xs="24">
<el-form-item label="合同编号">
<el-form-item label="合同编号" prop="contract_number">
<el-input
v-model="rpjform.contract_number"
type="text"
@ -53,7 +54,7 @@
</el-form-item>
</el-col>
<el-col :md="24" :sm="12" :xs="24">
<el-form-item label="进厂时间">
<el-form-item label="进厂时间" prop="come_time">
<el-date-picker
v-model="rpjform.come_time"
type="datetime"
@ -62,7 +63,7 @@
</el-form-item>
</el-col>
<el-col :md="24" :sm="12" :xs="24">
<el-form-item label="离厂时间">
<el-form-item label="离厂时间" prop="leave_time">
<el-date-picker
v-model="rpjform.leave_time"
type="datetime"
@ -71,7 +72,7 @@
</el-form-item>
</el-col>
<el-col :md="24" :sm="12" :xs="24">
<el-form-item label="所属部门">
<el-form-item label="所属部门" prop="belong_dept">
<el-cascader
v-model="rpjform.belong_dept"
:options="deptoptions"
@ -80,7 +81,7 @@
label: 'label', //
value: 'value', //
emitPath: false, // false
checkStrictly: true
checkStrictly: true,
}"
clearable
style="width: 100%"
@ -90,7 +91,7 @@
</el-col>
<el-col :md="24" :sm="12" :xs="24" v-if="rparty_show">
<el-form-item label="相关方">
<el-form-item label="相关方" prop="rparty">
<el-select v-model="rpjform.rparty" style="width: 100%">
<el-option
v-for="item in rpartyOptions"
@ -106,10 +107,12 @@
<el-row>
<el-col :md="24" :sm="12" :xs="24">
<el-form-item>
<el-button style="margin-top: 20px" type="primary" @click="handleNextStep"
<el-button
style="margin-top: 20px"
type="primary"
@click="handleNextStep"
>下一步
</el-button
>
</el-button>
</el-form-item>
</el-col>
</el-row>
@ -125,7 +128,7 @@
hidePagination
hideDo
stripe
style="height:300px"
style="height: 300px"
>
<el-table-column
label="#"
@ -141,7 +144,13 @@
<el-table-column label="文件资料" prop="name">
<template #default="scope">
<div v-for="item in scope.row.files_" :key="item.id">
<el-link style="font-size:12px" type="primary" :href="item.path" target="_blank">{{item.name}}</el-link>
<el-link
style="font-size: 12px"
type="primary"
:href="item.path"
target="_blank"
>{{ item.name }}</el-link
>
</div>
</template>
</el-table-column>
@ -153,10 +162,11 @@
type="primary"
size="small"
@click="upload(scope.row, scope.$index)"
><span v-if="scope.row.files.length>=1" style="color:red">重传</span>
<span v-else>上传</span>
</el-button
><span v-if="scope.row.files.length >= 1" style="color: red"
>重传</span
>
<span v-else>上传</span>
</el-button>
<!-- <el-popconfirm
title="确定删除吗?"
@confirm="del_rpjfile(scope.row)"
@ -168,15 +178,11 @@
</template>
</el-table-column>
</scTable>
<div style="margin-top:20px;text-align:center">
<div style="margin-top: 20px; text-align: center">
<el-button style="margin-right: 4px" @click="handleLastStep"
>上一步
</el-button
>
<el-button type="primary" @click="handleNextStep"
>下一步
</el-button
>
</el-button>
<el-button type="primary" @click="handleNextStep">下一步 </el-button>
</div>
<el-dialog v-model="dialogupload" draggable title="上传文件">
<el-form ref="dialogfileForm" :model="fileform" label-width="120px">
@ -190,10 +196,7 @@
:limit="10"
tip="最多上传10个文件,单个文件不要超过10M"
>
<el-button type="primary" icon="el-icon-upload"
>
</el-button
>
<el-button type="primary" icon="el-icon-upload"> </el-button>
</sc-upload-file>
</el-form-item>
</el-col>
@ -221,7 +224,7 @@
hidePagination
hideDo
stripe
style="height:300px"
style="height: 300px"
>
<el-table-column
label="#"
@ -244,8 +247,7 @@
:label="item.name"
:value="item.number"
>{{ item.name }}
</el-tag
>
</el-tag>
</template>
</el-table-column>
<el-table-column label="是否项目负责人" prop="is_manager" width="150">
@ -273,11 +275,7 @@
</el-table-column>
</scTable>
<el-dialog v-model="workerdialog" draggable title="选择项目人员">
<el-form
ref="workerForm"
:model="formworker"
label-width="120px"
>
<el-form ref="workerForm" :model="formworker" label-width="120px">
<el-row>
<el-col :md="24" :sm="12" :xs="24">
<el-form-item label="项目人员">
@ -337,51 +335,53 @@
<el-button type="primary" @click="submitWorker"> </el-button>
</template>
</el-dialog>
<div style="margin-top:20px;text-align:center">
<el-button @click="handleLastStep" style="margin-right:4px">上一步</el-button>
<div style="margin-top: 20px; text-align: center">
<el-button @click="handleLastStep" style="margin-right: 4px"
>上一步</el-button
>
<el-button
v-for=" item in initForm.transitions"
v-for="item in initForm.transitions"
:key="item.id"
type="primary"
@click="submitTicketCreate(item.id)"
style="margin-right:4px"
>{{item.name}}</el-button>
style="margin-right: 4px"
>{{ item.name }}</el-button
>
<el-button @click="submitOut" type="warning">退出</el-button>
</div>
</el-main>
</el-container>
</template>
<style scoped>
.clearfix {
.clearfix {
font-size: 20px;
}
}
.box-card p {
.box-card p {
line-height: 20px;
}
}
.content {
.content {
margin-top: 10px;
}
}
.stepSuc:hover {
.stepSuc:hover {
cursor: pointer;
}
}
.stepErr:hover {
.stepErr:hover {
cursor: not-allowed;
}
}
</style>
<script>
import {genTree} from "@/utils/verificate";
const defaultformworker = {
import { genTree } from "@/utils/verificate";
const defaultformworker = {
duty: "",
rcertificates: [],
rpj: "",
};
export default {
};
export default {
name: "rpjadd",
components: {},
data() {
@ -400,10 +400,10 @@
rpartyOptions: [],
deptoptions: [],
typeOptions: [
{id: 10, name: "建筑施工"},
{id: 20, name: "设备设施检维修"},
{id: 30, name: "保安保洁服务"},
{id: 40, name: "其他"},
{ id: 10, name: "建筑施工" },
{ id: 20, name: "设备设施检维修" },
{ id: 30, name: "保安保洁服务" },
{ id: 40, name: "其他" },
],
rpjfileList: [],
dialogupload: false,
@ -418,21 +418,30 @@
apiworkerObj: [],
workerdialog: false,
initForm: {},
rparty_show: false
rparty_show: false,
rules: {
name: [{ required: true, message: "请输入" }],
type: [{ required: true, message: " 请选择" }],
contract_number: [{ required: true, message: "请输入" }],
come_time: [{ required: true, message: "请选择" }],
leave_time: [{ required: true, message: "请选择" }],
},
};
},
mounted() {
this.rpjId = this.$route.query.rpjid; //ID
this.rpartyShow()
this.rpartyShow();
if (this.rpjId) {
this.getRpj();
}
this.getDept();
this.getInit();
},
methods: {
rpartyShow(){
rpartyShow() {
var userInfo = this.$TOOL.data.get("USER_INFO");
if(userInfo.type=='employee'){
this.rparty_show = true
if (userInfo.type == "employee") {
this.rparty_show = true;
this.getRpartyOptions();
}
},
@ -445,19 +454,23 @@
},
//
getDept() {
this.$API.system.dept.list.req({page: 0}).then((res) => {
this.$API.system.dept.list
.req({ page: 0, type__in: "dept" })
.then((res) => {
this.deptoptions = genTree(res);
});
},
//
getRpjfileList() {
this.$API.rpm.rpjfile.list.req({page: 0, rpj: this.rpjId}).then((res) => {
this.$API.rpm.rpjfile.list
.req({ page: 0, rpj: this.rpjId })
.then((res) => {
this.rpjfileList = res;
});
},
//
getRpartyOptions() {
this.$API.rpm.rparty.list.req({page: 0}).then((res) => {
this.$API.rpm.rparty.list.req({ page: 0 }).then((res) => {
this.rpartyOptions = res;
});
},
@ -476,20 +489,31 @@
//
handleNextStep() {
if (this.active == 0) {
this.$refs.dialogForm.validate(async (valid) => {
if (valid) {
if (this.rpjId) {
this.$API.rpm.rpj.update
.req(this.rpjId, this.rpjform)
.then((res) => {
this.$message.success("基本信息更新成功!");
return res;
})
.catch((err) => {
return err;
});
this.getRpjfileList(this.rpjId);
this.getmemberList(this.rpjId);
this.getRpjfileList();
this.getmemberList();
this.getremployee();
this.active = 1;
});
} else {
this.$API.rpm.rpj.create.req(this.rpjform).then((res) => {
this.$message.success("项目创建成功!");
this.rpjId = res.id;
this.rpjform.rparty = res.rparty;
this.getRpjfileList();
this.getmemberList();
this.getremployee();
this.active = 1;
});
}
}
});
} else if (this.active == 1) {
this.active = 2;
} else {
@ -532,7 +556,7 @@
.then((res) => {
this.$message.success("提交成功!");
this.dialogupload = false;
this.rpjfileList = []
this.rpjfileList = [];
this.getRpjfileList();
return res;
})
@ -542,7 +566,7 @@
},
//
getremployee() {
this.$API.rpm.remployee.list.req({page: 0}).then((res) => {
this.$API.rpm.remployee.list.req({ page: 0, rparty: this.rpjform.rparty }).then((res) => {
this.remployeeoptions = res;
});
},
@ -550,7 +574,7 @@
//
selectWorker() {
this.$API.rpm.rcertificate.list
.req({remployee: this.formworker.remployee, page: 0})
.req({ remployee: this.formworker.remployee, page: 0 })
.then((res) => {
this.certificatesOptions = res;
});
@ -558,7 +582,9 @@
//
getmemberList() {
this.$API.rpm.member.list.req({rpj: this.rpjId, page: 0}).then((res) => {
this.$API.rpm.member.list
.req({ rpj: this.rpjId, page: 0 })
.then((res) => {
this.apiworkerObj = res;
console.log(res);
});
@ -576,7 +602,7 @@
.req(row.id)
.then((res) => {
this.$message.success("作业人员删除成功");
this.getmemberList()
this.getmemberList();
return res;
})
.catch((err) => {
@ -587,10 +613,12 @@
submitWorker() {
this.formworker.rpj = this.rpjId;
this.$refs.workerForm.validate(async (valid) => {
this.$API.rpm.member.create.req(this.formworker).then((res) => {
this.$API.rpm.member.create
.req(this.formworker)
.then((res) => {
this.$message.success("创建项目人员成功");
this.workerdialog = false;
this.getmemberList()
this.getmemberList();
})
.catch((err) => {
return err;
@ -599,18 +627,18 @@
},
//
getInit(){
this.$API.wf.workflow.initkey.req('rpj').then((res) => {
getInit() {
this.$API.wf.workflow.initkey.req("rpj").then((res) => {
this.initForm = res;
});
},
//,
submitTicketCreate(id){
let ticket={};
ticket.workflow=this.initForm.workflow;
ticket.ticket_data={rpj:this.rpjId};
ticket.transition=id;
submitTicketCreate(id) {
let ticket = {};
ticket.workflow = this.initForm.workflow;
ticket.ticket_data = { rpj: this.rpjId };
ticket.transition = id;
this.$API.wf.ticket.create.req(ticket).then((res) => {
this.$message.success("提交成功");
this.$router.push({
@ -618,7 +646,7 @@
query: {},
});
});
}
},
};
},
};
</script>

View File

@ -191,13 +191,13 @@
</el-container>
</template>
<script>
import saveDialog from "./visit_form.vue";
// import saveDialog from "./visit_form.vue";
import detialDialog from "./visit_detial.vue";
export default {
name: "visit",
components: {
saveDialog,
// saveDialog,
detialDialog,
},
data() {
@ -252,9 +252,12 @@ export default {
methods: {
//
add() {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add");
// this.dialog.save = true;
// this.$nextTick(() => {
// this.$refs.saveDialog.open("add");
// });
this.$router.push({
name: "vistoradd",
});
},
addpepple(row) {

View File

@ -28,57 +28,8 @@
style="margin: 40px 40px 40px 40px"
>
<el-row>
<el-col :md="8" :sm="12" :xs="24">
<el-form-item label="来访概述">
<el-input v-model="form.name" type="text" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="8" :sm="12" :xs="24">
<el-form-item label="来访时间">
<el-date-picker
v-model="form.visit_time"
type="datetime"
placeholder="选择来访时间"
/>
</el-form-item>
</el-col>
<el-col :md="8" :sm="12" :xs="24">
<el-form-item label="离开时间">
<el-date-picker
v-model="form.leave_time"
type="datetime"
placeholder="选择离开时间"
/>
</el-form-item>
</el-col>
<el-col :md="8" :sm="12" :xs="24">
<el-form-item label="来访单位">
<el-input v-model="form.company" type="text" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="8" :sm="24" :xs="24">
<el-form-item label="来访级别">
<el-radio-group v-model="form.level">
<el-radio-button label="10">一般</el-radio-button>
<el-radio-button label="20">重要</el-radio-button>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :md="8" :sm="12" :xs="24">
<el-form-item label="来访人数">
<el-input-number
v-model="form.count_people"
:min="0"
:max="32767"
controls-position="right"
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="8" :sm="12" :xs="24">
<el-form-item label="来访事由">
<el-col :md="8" :sm="12" :xs="24" >
<el-form-item label="来访事由" prop="purpose">
<el-select v-model="form.purpose" placeholder="选择来访事由">
<el-option
v-for="item in purposeoptions"
@ -89,8 +40,57 @@
</el-select>
</el-form-item>
</el-col>
<el-col :md="8" :sm="12" :xs="24">
<el-form-item label="来访概述" prop="name">
<el-input v-model="form.name" type="text" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="8" :sm="12" :xs="24">
<el-form-item label="来访时间" prop="visit_time">
<el-date-picker
v-model="form.visit_time"
type="datetime"
placeholder="选择来访时间"
/>
</el-form-item>
</el-col>
<el-col :md="8" :sm="12" :xs="24">
<el-form-item label="离开时间" prop="leave_time">
<el-date-picker
v-model="form.leave_time"
type="datetime"
placeholder="选择离开时间"
/>
</el-form-item>
</el-col>
<el-col :md="8" :sm="12" :xs="24">
<el-form-item label="来访单位" prop="company">
<el-input v-model="form.company" type="text" clearable></el-input>
</el-form-item>
</el-col>
<el-col :md="8" :sm="24" :xs="24">
<el-form-item label="来访级别" prop="level">
<el-radio-group v-model="form.level">
<el-radio-button label="10">一般</el-radio-button>
<el-radio-button label="20">重要</el-radio-button>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :md="8" :sm="12" :xs="24">
<el-form-item label="来访人数" prop="count_people">
<el-input-number
v-model="form.count_people"
:min="0"
:max="32767"
controls-position="right"
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="16" :sm="12" :xs="24">
<el-form-item label="来访详述">
<el-form-item label="来访详述" prop="description">
<el-input
v-model="form.description"
type="text"
@ -99,7 +99,7 @@
</el-form-item>
</el-col>
<el-col :md="8" :sm="24" :xs="24">
<el-form-item label="接待人">
<el-form-item label="接待人" prop="receptionist">
<span style="display:flex">
<el-input readonly v-model="form.receptionist_name"></el-input>
<ehsUserSelect :multiple="false" @submit="getReceptionist"/>
@ -353,7 +353,7 @@ export default {
measureOptions: ['集中隔离','居家隔离','居家健康检测','排除风险'],
active: 0,
stepSuc: [0],
form: [],
form: {purpose:10, level:10},
stepTitle: ["基本信息", "选择访客"],
receptionistoptions: [],
purposeoptions: [
@ -391,7 +391,14 @@ export default {
is_main: false,
is_reported: true,
},
rules: { },
rules: {
purpose: [{ required: true, message: "请输入" }],
name: [{ required: true, message: "来访概述" }],
visit_time: [{ required: true, message: "请输入" }],
leave_time: [{ required: true, message: "请输入" }],
receptionist: [{ required: true, message: "请输入" }],
level: [{ required: true, message: "请输入" }]
},
peopleRules:{
visitor: [{ required: true, message: "请选择来访人员" }],
return_date: [{ required: true, message: "请选择返乡日期" }],
@ -411,8 +418,10 @@ export default {
},
mounted() {
this.visitid = this.$route.query.visitid; //ID
if(this.visitid){
this.getRpj();
this.getpeoplelistlist();
}
this.getvisitorlist();
},
methods: {
@ -450,18 +459,27 @@ export default {
//
handleNextStep() {
if (this.active == 0) {
this.$API.vm.visit.update
.req(this.form.id, this.form)
this.$refs.dialogForm.validate(async (valid) => {
if (valid) {
if(this.visitid){
this.$API.vm.visit.update
.req(this.visitid, this.form)
.then((res) => {
this.$message.success("基本信息更新成功!");
return res;
})
.catch((err) => {
return err;
});
this.$message.success("基本信息更新成功");
this.getInit();
this.active = 1;
})
}else{
this.$API.vm.visit.create.req(this.form).then(res=>{
this.visitid = res.id;
this.$message.success("项目创建成功");
this.getInit();
this.active = 1;
})
}
}
});
} else {
this.active = 1;
}