<template>
|
<div class="system-edit-user-container">
|
<el-dialog
|
title="查看应急物资代码"
|
v-model="isShowDialog"
|
width="769px"
|
>
|
<el-form
|
ref="ruleFormRef"
|
:rules="rules"
|
:model="ruleForm"
|
size="default"
|
label-width="120px"
|
>
|
<el-row :gutter="35">
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="物资名称" prop="name">
|
<el-input v-model="ruleForm.name"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="物资编号" prop="number">
|
<el-input v-model="ruleForm.number"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="物资用途" prop="purpose">
|
<el-input v-model="ruleForm.purpose"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="所属区域" prop="area">
|
<el-input v-model="ruleForm.area"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="物资型号" prop="model">
|
<el-input v-model="ruleForm.model"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="负责部门" prop="department">
|
<el-tree-select v-model="ruleForm.department" :data="data" class="w100"/>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="物资分类" prop="classification">
|
<el-select v-model="ruleForm.classification" class="w100">
|
<el-option label="事故气体吸收装置" value="0"></el-option>
|
<el-option label="通讯设施" value="1"></el-option>
|
<el-option label="交通运输工具" value="2"></el-option>
|
<el-option label="照明装置" value="3"></el-option>
|
<el-option label="防护器材" value="4"></el-option>
|
<el-option label="其它" value="5"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="存放位置" prop="storageLocation">
|
<el-input v-model="ruleForm.storageLocation"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="存储数量" prop="storageQuantity">
|
<el-input v-model="ruleForm.storageQuantity"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="生产日期">
|
<el-date-picker v-model="datetime" type="datetime" placeholder="选择日期时间" style="width: 100%" />
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="使用期限(天)" prop="teamName">
|
<el-input v-model="ruleForm.teamName"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="物资状态" prop="teamLevel">
|
<el-select v-model="ruleForm.teamLevel" class="w100">
|
<el-option label="完好" value="0"></el-option>
|
<el-option label="维修" value="1"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="检查周期月" prop="teamName">
|
<el-input v-model="ruleForm.teamName"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="投用日期">
|
<el-date-picker v-model="datetime" type="datetime" placeholder="选择日期时间" style="width: 100%" />
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
<el-form-item label="使用说明">
|
<el-input
|
class="textarea"
|
v-model="ruleForm.describe"
|
type="textarea"
|
maxlength="150"
|
placeholder="请填写使用说明"
|
></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="检查日期">
|
<el-date-picker v-model="datetime" type="datetime" placeholder="选择日期时间" style="width: 100%" />
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="下次检查日期">
|
<el-date-picker v-model="datetime" type="datetime" placeholder="选择日期时间" style="width: 100%" />
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="负责人" prop="teamLeader">
|
<el-input
|
v-model="ruleForm.teamLeader"
|
placeholder="请选择"
|
class="input-with-select"
|
>
|
<template #append>
|
<el-button :icon="Search" @click="openUser"/>
|
</template>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
<template #footer>
|
<span class="dialog-footer">
|
<el-button @click="onCancel" size="default">关闭</el-button>
|
<el-button size="default" type="primary" @click="submitForm(ruleFormRef)">确定</el-button>
|
</span>
|
</template>
|
</el-dialog>
|
<userSelections ref="userRef"/>
|
<AddEmergencyPersonnel ref="addRef" />
|
</div>
|
</template>
|
|
<script lang="ts">
|
import {
|
reactive,
|
toRefs,
|
ref,
|
onMounted,
|
defineComponent
|
} from 'vue';
|
import type {
|
UploadUserFile,
|
FormInstance,
|
FormRules,
|
} from 'element-plus'
|
import {
|
Search
|
} from '@element-plus/icons-vue'
|
import userSelections from "/@/components/userSelections/index.vue"
|
import AddEmergencyPersonnel from "/@/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue";
|
// 定义接口来定义对象的类型
|
interface DeptData {
|
deptName: string;
|
createTime: string;
|
status: boolean;
|
sort: number | string;
|
describe: string;
|
id: number;
|
children?: DeptData[];
|
}
|
// 定义接口来定义对象的类型
|
interface RuleFormRow {
|
// teamName: string;
|
// teamLevel: string;
|
// teamLeader: string;
|
// responsibleDepartment: any
|
// teamPhone: string;
|
// telephone: string;
|
// describe: string;
|
selectPeople:string
|
jobNumber: string;
|
personnelName: string;
|
personnelGender: string;
|
phone: string;
|
position: string;
|
}
|
interface UserState {
|
isShowDialog: boolean;
|
ruleForm: RuleFormRow;
|
deptData: Array<DeptData>;
|
}
|
|
export default defineComponent({
|
name: 'openEdit',
|
components: {
|
userSelections,
|
AddEmergencyPersonnel,
|
},
|
setup() {
|
const state = reactive<UserState>({
|
isShowDialog: false,
|
ruleForm: {
|
selectPeople:'111', //选择人员
|
jobNumber: '', // 人员工号
|
phone: '', // 手机号码
|
personnelGender: '', //人员性别
|
position: '', //职位
|
personnelName: '', // 人员名称
|
},
|
deptData: [], // 部门数据
|
});
|
|
// 关闭弹窗
|
const closeDialog = () => {
|
state.isShowDialog = false;
|
};
|
// 取消
|
const onCancel = () => {
|
closeDialog();
|
};
|
// 初始化部门数据
|
const initTableData = () => {
|
state.deptData.push({
|
deptName: 'vueNextAdmin',
|
createTime: new Date().toLocaleString(),
|
status: true,
|
sort: Math.random(),
|
describe: '顶级部门',
|
id: Math.random(),
|
children: [
|
{
|
deptName: 'IT外包服务',
|
createTime: new Date().toLocaleString(),
|
status: true,
|
sort: Math.random(),
|
describe: '总部',
|
id: Math.random(),
|
},
|
{
|
deptName: '资本控股',
|
createTime: new Date().toLocaleString(),
|
status: true,
|
sort: Math.random(),
|
describe: '分部',
|
id: Math.random(),
|
},
|
],
|
});
|
};
|
// 页面加载时
|
onMounted(() => {
|
initTableData();
|
});
|
|
//定义树形下拉框
|
const responsibleDepartment = ref()
|
const data = [
|
{
|
value: '1',
|
label: '广汇能源综合物流发展有限责任公司',
|
children: [
|
{
|
value: '1-1',
|
label: '经营班子',
|
children: [],
|
},
|
],
|
},
|
{
|
value: '2',
|
label: '生产运行部',
|
children: [
|
{
|
value: '2-1',
|
label: '灌装一班',
|
children: []
|
},
|
{
|
value: '2-2',
|
label: '工艺四班',
|
children: [],
|
},
|
],
|
},
|
{
|
value: '3',
|
label: '设备部',
|
children: [
|
{
|
value: '3-1',
|
label: '仪表班',
|
children: [],
|
},
|
{
|
value: '3-2',
|
label: '机修班',
|
children: [],
|
},
|
],
|
},
|
]
|
// 必填项提示
|
const rules = reactive<FormRules>({
|
teamName: [
|
{
|
required: true,
|
message: '队伍名称不能为空',
|
trigger: 'change',
|
},
|
],
|
teamLevel: [
|
{
|
required: true,
|
message: '队伍级别不能为空',
|
trigger: 'change',
|
},
|
],
|
teamLeader: [
|
{
|
required: true,
|
message: '队伍负责人不能为空',
|
trigger: 'change',
|
},
|
],
|
responsibleDepartment: [
|
{
|
required: true,
|
message: '负责人部门不能为空',
|
trigger: 'change',
|
},
|
],
|
teamPhone: [
|
{
|
required: true,
|
message: '负责人手机不能为空',
|
trigger: 'change',
|
},
|
],
|
telephone: [
|
{
|
required: true,
|
message: '固定电话不能为空',
|
trigger: 'change',
|
},
|
],
|
})
|
|
// 打开用户选择弹窗
|
const userRef = ref();
|
const openUser = () => {
|
userRef.value.openDialog();
|
};
|
|
const ruleFormRef = ref<FormInstance>()
|
// 打开弹窗
|
const openDialog = (row: RuleFormRow) => {
|
state.ruleForm = row;
|
state.isShowDialog = true;
|
};
|
// 表单提交验证必填项
|
const submitForm = async (formEl: FormInstance | undefined) => {
|
if (!formEl) return
|
await formEl.validate((valid, fields) => {
|
if (valid) {
|
console.log('submit!')
|
} else {
|
console.log('error submit!', fields)
|
}
|
})
|
}
|
return {
|
openDialog,
|
closeDialog,
|
onCancel,
|
responsibleDepartment,
|
data,
|
submitForm,
|
Search,
|
rules,
|
ruleFormRef,
|
openUser,
|
userRef,
|
...toRefs(state),
|
};
|
},
|
});
|
</script>
|
<style scoped lang="scss">
|
.textarea{
|
height: 50px!important;
|
}
|
.textarea ::v-deep .el-textarea__inner{
|
height: 50px!important;
|
}
|
</style>
|