268 lines
7.1 KiB
Vue
268 lines
7.1 KiB
Vue
|
|
<template>
|
|||
|
|
<page-meta :page-font-size="$store.state.vuex_fontsize+'px'"
|
|||
|
|
:root-font-size="$store.state.vuex_fontsize+'px'"></page-meta>
|
|||
|
|
<view>
|
|||
|
|
<view class="qjtx">
|
|||
|
|
<u--form labelPosition="left" :model="projInfo" ref="form1" :rules="rules">
|
|||
|
|
<u-form-item label="工程名称" required prop="name" borderBottom labelWidth="120">
|
|||
|
|
<u--input v-model="projInfo.name" placeholder="请输入工程名称"></u--input>
|
|||
|
|
</u-form-item>
|
|||
|
|
<u-form-item label="工程简写" required prop="abbreviation" borderBottom labelWidth="120">
|
|||
|
|
<u--input v-model="projInfo.abbreviation" placeholder="请输入工程简写"></u--input>
|
|||
|
|
</u-form-item>
|
|||
|
|
|
|||
|
|
<u-form-item label="工程类型" required prop="proType" borderBottom @click="showProjType = true; hideKeyboard()"
|
|||
|
|
ref="item1" labelWidth="120">
|
|||
|
|
<u--input @click="showProjType = true; hideKeyboard()" v-model="projInfo.proType"
|
|||
|
|
placeholder="请选择工程类型"></u--input>
|
|||
|
|
<u-icon slot="right" name="arrow-right"></u-icon>
|
|||
|
|
</u-form-item>
|
|||
|
|
|
|||
|
|
<u-form-item label="工程状态" required prop="status" borderBottom @click="showStatus = true; hideKeyboard()"
|
|||
|
|
ref="item1" labelWidth="120">
|
|||
|
|
<u--input @click="showStatus = true; hideKeyboard()" v-model="projInfo.status"
|
|||
|
|
placeholder="请选择工程状态"></u--input>
|
|||
|
|
<u-icon slot="right" name="arrow-right"></u-icon>
|
|||
|
|
</u-form-item>
|
|||
|
|
|
|||
|
|
<u-form-item label="所属分公司" required prop="companyName" borderBottom @click="showCompany = true; hideKeyboard()"
|
|||
|
|
ref="item1" labelWidth="120">
|
|||
|
|
<u--input @click="showCompany = true; hideKeyboard()" v-model="projInfo.companyName"
|
|||
|
|
placeholder="请选择所属分公司"></u--input>
|
|||
|
|
<u-icon slot="right" name="arrow-right"></u-icon>
|
|||
|
|
</u-form-item>
|
|||
|
|
|
|||
|
|
<u-form-item label="电压等级" required prop="voltageLevel" borderBottom @click="showPvl = true; hideKeyboard()"
|
|||
|
|
ref="item1" labelWidth="120">
|
|||
|
|
<u--input @click="showPvl = true; hideKeyboard()" v-model="projInfo.voltageLevelName"
|
|||
|
|
placeholder="请选择电压等级"></u--input>
|
|||
|
|
<u-icon slot="right" name="arrow-right"></u-icon>
|
|||
|
|
</u-form-item>
|
|||
|
|
|
|||
|
|
<u-form-item label="工程联系人" prop="projectManager" borderBottom labelWidth="150">
|
|||
|
|
<u--input v-model="projInfo.projectManager" placeholder="请输入工程联系人"></u--input>
|
|||
|
|
</u-form-item>
|
|||
|
|
<u-form-item label="联系人电话" prop="projectManagerPhone" borderBottom labelWidth="150">
|
|||
|
|
<u--input v-model="projInfo.projectManagerPhone" placeholder="请输入联系人电话"></u--input>
|
|||
|
|
</u-form-item>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</u--form>
|
|||
|
|
<u-button type="primary" text="添加" customStyle="margin-top: 50px" @click="submit" style="width: 50%;background-color:#00b27b;border-color:#00b27b;"></u-button>
|
|||
|
|
<!-- <u-button type="error" text="重置" customStyle="margin-top: 10px" @click="reset"></u-button> -->
|
|||
|
|
<u-action-sheet :show="showProjType" :actions="projectTypeList" title="请选择工程类型" @close="showProjType = false"
|
|||
|
|
@select="projTypeSelect">
|
|||
|
|
</u-action-sheet>
|
|||
|
|
|
|||
|
|
<u-action-sheet :show="showStatus" :actions="statusList" title="请选择工程状态" @close="showStatus = false"
|
|||
|
|
@select="statusSelect">
|
|||
|
|
</u-action-sheet>
|
|||
|
|
<u-action-sheet :show="showPvl" :actions="pVoltageLevel" title="请选择电压等级" @close="showPvl = false"
|
|||
|
|
@select="pvlSelect">
|
|||
|
|
</u-action-sheet>
|
|||
|
|
|
|||
|
|
<u-action-sheet :show="showCompany" :actions="companyData" title="请选择电压等级" @close="showCompany = false"
|
|||
|
|
@select="companySelect">
|
|||
|
|
</u-action-sheet>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
import {
|
|||
|
|
dictList,
|
|||
|
|
companyTreeSelect,
|
|||
|
|
addProject
|
|||
|
|
} from '@/api/handbook.js'
|
|||
|
|
|
|||
|
|
export default {
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
showCalendar: false,
|
|||
|
|
projInfo: {
|
|||
|
|
name: "",
|
|||
|
|
abbreviation: "",
|
|||
|
|
proType: "",
|
|||
|
|
status: "",
|
|||
|
|
companyId: "",
|
|||
|
|
companyName:"",
|
|||
|
|
voltageLevel: "",
|
|||
|
|
voltageLevelName: "",
|
|||
|
|
projectManager: "",
|
|||
|
|
projectManagerPhone: "",
|
|||
|
|
},
|
|||
|
|
rules: {
|
|||
|
|
name: {
|
|||
|
|
required: true,
|
|||
|
|
message: '工程名称不能为空',
|
|||
|
|
trigger: ['blur']
|
|||
|
|
},
|
|||
|
|
abbreviation: {
|
|||
|
|
required: true,
|
|||
|
|
message: '工程简写不能为空',
|
|||
|
|
trigger: ['blur']
|
|||
|
|
},
|
|||
|
|
proType: {
|
|||
|
|
required: true,
|
|||
|
|
message: '工程类型不能为空',
|
|||
|
|
trigger: ['blur']
|
|||
|
|
},
|
|||
|
|
status: {
|
|||
|
|
required: true,
|
|||
|
|
message: '工程状态不能为空',
|
|||
|
|
trigger: ['blur']
|
|||
|
|
},
|
|||
|
|
companyName: {
|
|||
|
|
required: true,
|
|||
|
|
message: '所属分公司不能为空',
|
|||
|
|
trigger: ['blur']
|
|||
|
|
},
|
|||
|
|
voltageLevel: {
|
|||
|
|
required: true,
|
|||
|
|
message: '电压等级不能为空',
|
|||
|
|
trigger: ['blur']
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
leaveType: [],
|
|||
|
|
leaveList: [],
|
|||
|
|
pageNum: 1,
|
|||
|
|
total: 0,
|
|||
|
|
|
|||
|
|
pVoltageLevel:[],
|
|||
|
|
showPvl:false,
|
|||
|
|
statusList:[],
|
|||
|
|
showStatus: false,
|
|||
|
|
projectTypeList:[],
|
|||
|
|
showProjType:false,
|
|||
|
|
companyData:[],
|
|||
|
|
showCompany:false,
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
onLoad(option) {
|
|||
|
|
this.dictList();
|
|||
|
|
this.companyTreeSelect();
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
dictList() {
|
|||
|
|
dictList({
|
|||
|
|
pageNum: 1,
|
|||
|
|
pageSize: 1000,
|
|||
|
|
dictType: 'sys_project_voltage_level'
|
|||
|
|
|
|||
|
|
}).then(res => {
|
|||
|
|
res.rows.forEach(item => {
|
|||
|
|
this.pVoltageLevel.push({
|
|||
|
|
name: item.dictLabel,
|
|||
|
|
id:item.dictValue
|
|||
|
|
})
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
})
|
|||
|
|
dictList({
|
|||
|
|
pageNum: 1,
|
|||
|
|
pageSize: 1000,
|
|||
|
|
dictType: 'sys_project_status'
|
|||
|
|
|
|||
|
|
}).then(res => {
|
|||
|
|
res.rows.forEach(item => {
|
|||
|
|
this.statusList.push({
|
|||
|
|
name: item.dictLabel
|
|||
|
|
})
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
})
|
|||
|
|
dictList({
|
|||
|
|
pageNum: 1,
|
|||
|
|
pageSize: 1000,
|
|||
|
|
dictType: 'sys_project_type'
|
|||
|
|
|
|||
|
|
}).then(res => {
|
|||
|
|
res.rows.forEach(item => {
|
|||
|
|
this.projectTypeList.push({
|
|||
|
|
name: item.dictLabel
|
|||
|
|
})
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
|
|||
|
|
// 查询分公司
|
|||
|
|
companyTreeSelect() {
|
|||
|
|
companyTreeSelect({}).then(res => {
|
|||
|
|
res.rows.forEach(e => {
|
|||
|
|
this.companyData.push({
|
|||
|
|
name: e.deptName,
|
|||
|
|
id: e.deptId,
|
|||
|
|
|
|||
|
|
})
|
|||
|
|
})
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
projTypeSelect(e){
|
|||
|
|
this.projInfo.proType=e.name;
|
|||
|
|
},
|
|||
|
|
statusSelect(e){
|
|||
|
|
this.projInfo.status=e.name;
|
|||
|
|
},
|
|||
|
|
pvlSelect(e){
|
|||
|
|
this.projInfo.voltageLevel=e.id;
|
|||
|
|
this.projInfo.voltageLevelName=e.name;
|
|||
|
|
},
|
|||
|
|
companySelect(e){
|
|||
|
|
this.projInfo.companyId=e.id;
|
|||
|
|
this.projInfo.companyName=e.name;
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
submit() {
|
|||
|
|
// 如果有错误,会在catch中返回报错信息数组,校验通过则在then中返回true
|
|||
|
|
console.log(this.projInfo)
|
|||
|
|
this.$refs.form1.validate().then(res => {
|
|||
|
|
addProject(this.projInfo).then(res => {
|
|||
|
|
if (res.code == 200) {
|
|||
|
|
uni.$u.toast('添加成功')
|
|||
|
|
setTimeout(() => {
|
|||
|
|
uni.navigateBack();
|
|||
|
|
}, 1000)
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
})
|
|||
|
|
}).catch(errors => {
|
|||
|
|
// uni.$u.toast('校验失败')
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
hideKeyboard() {
|
|||
|
|
uni.hideKeyboard()
|
|||
|
|
},
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style lang="scss" scoped>
|
|||
|
|
uni-page-body {
|
|||
|
|
height: 100%;
|
|||
|
|
padding: 10rpx;
|
|||
|
|
background-color: #fff;
|
|||
|
|
}
|
|||
|
|
.qjtx {
|
|||
|
|
padding: 20rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
::v-deep .uni-input-input {
|
|||
|
|
font-size: 13px !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
::v-deep .input-placeholder {
|
|||
|
|
font-size: 13px !important;
|
|||
|
|
}
|
|||
|
|
::v-deep .u-form-item__body__left {
|
|||
|
|
width: 80px !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
</style>
|