|
|
@@ -9,7 +9,6 @@
|
|
|
:close-on-press-escape="false"
|
|
|
width="1200px"
|
|
|
>
|
|
|
-
|
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
|
|
<el-row>
|
|
|
<el-col :span="8">
|
|
|
@@ -24,7 +23,6 @@
|
|
|
v-model="form.code"
|
|
|
placeholder="请输入"
|
|
|
:disabled="type === 'edit'"
|
|
|
-
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
@@ -101,7 +99,7 @@
|
|
|
<el-form-item label="负责人:" prop="leaderId">
|
|
|
<el-select
|
|
|
v-model="form.leaderId"
|
|
|
- filterable
|
|
|
+ filterable
|
|
|
placeholder="请选择"
|
|
|
@change="change_principal"
|
|
|
style="width: 100%"
|
|
|
@@ -163,17 +161,17 @@
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
-<!-- <el-col :span="8" style="margin-bottom: 12px">-->
|
|
|
-<!-- <el-form-item prop="extInfo.campus" label="归属园院区">-->
|
|
|
-<!-- <el-input-->
|
|
|
-<!-- class="form-ipt"-->
|
|
|
-<!-- size="small"-->
|
|
|
-<!-- style="width: 100%"-->
|
|
|
-<!-- placeholder="请输入"-->
|
|
|
-<!-- v-model="form.extInfo.campus"-->
|
|
|
-<!-- ></el-input>-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="8" style="margin-bottom: 12px">-->
|
|
|
+ <!-- <el-form-item prop="extInfo.campus" label="归属园院区">-->
|
|
|
+ <!-- <el-input-->
|
|
|
+ <!-- class="form-ipt"-->
|
|
|
+ <!-- size="small"-->
|
|
|
+ <!-- style="width: 100%"-->
|
|
|
+ <!-- placeholder="请输入"-->
|
|
|
+ <!-- v-model="form.extInfo.campus"-->
|
|
|
+ <!-- ></el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
<el-col :span="8" style="margin-bottom: 12px">
|
|
|
<el-form-item prop="extInfo.coveredArea" label="建筑面积">
|
|
|
<el-input
|
|
|
@@ -231,7 +229,6 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
-
|
|
|
<el-col :span="24" style="margin-bottom: 12px">
|
|
|
<el-form-item label="备注:" prop="remark">
|
|
|
<el-input
|
|
|
@@ -255,186 +252,180 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { saveOrUpdate, listWorkshopByParentId } from '@/api/factoryModel';
|
|
|
-import { getUserPage } from '@/api/system/organization';
|
|
|
-import { cityDataLabel } from 'ele-admin/packages/utils/regions';
|
|
|
-import AreaSelect from "@/views/enterpriseModel/regionalManage/components/area-cascader.vue";
|
|
|
-import {basicAreaPageAPI} from "@/api/regionalManage";
|
|
|
-export default {
|
|
|
- components: {AreaSelect},
|
|
|
- props: {
|
|
|
- options_groupId: {
|
|
|
- type: Array,
|
|
|
- default() {
|
|
|
- return [];
|
|
|
+ import { saveOrUpdate, listWorkshopByParentId } from '@/api/factoryModel';
|
|
|
+ import { getUserPage } from '@/api/system/organization';
|
|
|
+ import { cityDataLabel } from 'ele-admin/packages/utils/regions';
|
|
|
+ import AreaSelect from '@/views/enterpriseModel/regionalManage/components/area-cascader.vue';
|
|
|
+ import { basicAreaPageAPI } from '@/api/regionalManage';
|
|
|
+ export default {
|
|
|
+ components: { AreaSelect },
|
|
|
+ props: {
|
|
|
+ options_groupId: {
|
|
|
+ type: Array,
|
|
|
+ default() {
|
|
|
+ return [];
|
|
|
+ }
|
|
|
+ },
|
|
|
+ options_factory: {
|
|
|
+ type: Array,
|
|
|
+ default() {
|
|
|
+ return [];
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
- options_factory: {
|
|
|
- type: Array,
|
|
|
- default() {
|
|
|
- return [];
|
|
|
+ watch: {
|
|
|
+ options_groupId(nval) {
|
|
|
+ this.toTreeData(nval);
|
|
|
}
|
|
|
- }
|
|
|
- },
|
|
|
- watch: {
|
|
|
- options_groupId(nval) {
|
|
|
- this.toTreeData(nval);
|
|
|
- }
|
|
|
- },
|
|
|
- created() {
|
|
|
- this.getBasicAreaList();
|
|
|
- },
|
|
|
- data() {
|
|
|
- const defaultForm = {
|
|
|
- id: '',
|
|
|
- code: '',
|
|
|
- name: '',
|
|
|
- leaderId:'',
|
|
|
- areaId: '',
|
|
|
- areaName: '',
|
|
|
- extInfo: {
|
|
|
- principalDep: '', // 负责人部门
|
|
|
- phone: '', // 手机号
|
|
|
- locationDetail: '', // 详细地址
|
|
|
- location: [], // 省市区
|
|
|
- assetCode: '', //房屋资产编码
|
|
|
- campus: '', //归属园院区
|
|
|
- coveredArea: '', //建筑面积
|
|
|
- level: '', //楼层
|
|
|
- moneyCeiling: '', //已配金额上限
|
|
|
- useArea: '' // 使用面积
|
|
|
- },
|
|
|
- groupId: '',
|
|
|
- enabled: 1,
|
|
|
- parentId: '',
|
|
|
- remark: '',
|
|
|
- type: 2, // FACTORY(1, "工厂"), WORKSHOP_PLAN(2, "厂房"), WORKSHOP(3, "车间"), LINE(4, "厂线");
|
|
|
- };
|
|
|
- return {
|
|
|
- defaultForm,
|
|
|
- // 表单数据
|
|
|
- form: { ...defaultForm },
|
|
|
- areaList: [],
|
|
|
- areaTreeList: [],
|
|
|
- // 表单验证规则
|
|
|
- rules: {
|
|
|
- code: [{ required: true, message: '请输入', trigger: 'blur' }],
|
|
|
- name: [{ required: true, message: '请输入', trigger: 'blur' }],
|
|
|
- 'extInfo.factoryId': [
|
|
|
- { required: true, message: '请输入', trigger: 'change' }
|
|
|
- ],
|
|
|
- parentId: { required: true, message: '请输入', trigger: 'change' },
|
|
|
- enabled: { required: true, message: '请输入', trigger: 'change' },
|
|
|
- 'extInfo.principalDep': [
|
|
|
- { required: true, message: '请输入', trigger: 'change' }
|
|
|
- ],
|
|
|
- leaderId: [
|
|
|
- { required: true, message: '请选择', trigger: 'change' }
|
|
|
- ],
|
|
|
- 'extInfo.phone': [
|
|
|
- { min: 11, message: '手机号格式不正确', trigger: 'blur' }
|
|
|
- ],
|
|
|
-
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getBasicAreaList();
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ const defaultForm = {
|
|
|
+ id: '',
|
|
|
+ code: '',
|
|
|
+ name: '',
|
|
|
+ leaderId: '',
|
|
|
+ areaId: '',
|
|
|
+ areaName: '',
|
|
|
+ extInfo: {
|
|
|
+ principalDep: '', // 负责人部门
|
|
|
+ phone: '', // 手机号
|
|
|
+ locationDetail: '', // 详细地址
|
|
|
+ location: [], // 省市区
|
|
|
+ assetCode: '', //房屋资产编码
|
|
|
+ campus: '', //归属园院区
|
|
|
+ coveredArea: '', //建筑面积
|
|
|
+ level: '', //楼层
|
|
|
+ moneyCeiling: '', //已配金额上限
|
|
|
+ useArea: '' // 使用面积
|
|
|
+ },
|
|
|
+ groupId: '',
|
|
|
+ enabled: 1,
|
|
|
+ parentId: '',
|
|
|
+ remark: '',
|
|
|
+ type: 2 // FACTORY(1, "工厂"), WORKSHOP_PLAN(2, "厂房"), WORKSHOP(3, "车间"), LINE(4, "厂线");
|
|
|
+ };
|
|
|
+ return {
|
|
|
+ defaultForm,
|
|
|
+ // 表单数据
|
|
|
+ form: { ...defaultForm },
|
|
|
+ areaList: [],
|
|
|
+ areaTreeList: [],
|
|
|
+ // 表单验证规则
|
|
|
+ rules: {
|
|
|
+ code: [{ required: true, message: '请输入', trigger: 'blur' }],
|
|
|
+ name: [{ required: true, message: '请输入', trigger: 'blur' }],
|
|
|
+ 'extInfo.factoryId': [
|
|
|
+ { required: true, message: '请输入', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ parentId: { required: true, message: '请输入', trigger: 'change' },
|
|
|
+ enabled: { required: true, message: '请输入', trigger: 'change' },
|
|
|
+ 'extInfo.principalDep': [
|
|
|
+ { required: true, message: '请输入', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ leaderId: [{ required: true, message: '请选择', trigger: 'change' }],
|
|
|
+ 'extInfo.phone': [
|
|
|
+ { min: 11, message: '手机号格式不正确', trigger: 'blur' }
|
|
|
+ ]
|
|
|
|
|
|
- // 'extInfo.assetCode': [
|
|
|
- // { required: true, message: '请输入', trigger: 'blur' }
|
|
|
- // ],
|
|
|
+ // 'extInfo.assetCode': [
|
|
|
+ // { required: true, message: '请输入', trigger: 'blur' }
|
|
|
+ // ],
|
|
|
|
|
|
- // 'extInfo.campus': [
|
|
|
- // { required: true, message: '请输入', trigger: 'blur' }
|
|
|
- // ],
|
|
|
- // 'extInfo.coveredArea': [
|
|
|
- // { required: true, message: '请输入', trigger: 'blur' }
|
|
|
- // ],
|
|
|
- // 'extInfo.level': [
|
|
|
- // { required: true, message: '请输入', trigger: 'blur' }
|
|
|
- // ],
|
|
|
+ // 'extInfo.campus': [
|
|
|
+ // { required: true, message: '请输入', trigger: 'blur' }
|
|
|
+ // ],
|
|
|
+ // 'extInfo.coveredArea': [
|
|
|
+ // { required: true, message: '请输入', trigger: 'blur' }
|
|
|
+ // ],
|
|
|
+ // 'extInfo.level': [
|
|
|
+ // { required: true, message: '请输入', trigger: 'blur' }
|
|
|
+ // ],
|
|
|
|
|
|
- // 'extInfo.moneyCeiling': [
|
|
|
- // { required: true, message: '请输入', trigger: 'blur' }
|
|
|
- // ],
|
|
|
- // 'extInfo.useArea': [
|
|
|
- // { required: true, message: '请输入', trigger: 'blur' }
|
|
|
- // ]
|
|
|
- },
|
|
|
- visible: false,
|
|
|
- type: '', // add/edit
|
|
|
- loading: false,
|
|
|
- options: {
|
|
|
- principalDep: [],
|
|
|
- principal: [],
|
|
|
- workshop: [],
|
|
|
- enabled: [
|
|
|
- {
|
|
|
- label: '生效',
|
|
|
- value: 1
|
|
|
- },
|
|
|
- {
|
|
|
- label: '未生效',
|
|
|
- value: 0
|
|
|
- }
|
|
|
- ],
|
|
|
- cityDataLabel
|
|
|
- }
|
|
|
- };
|
|
|
- },
|
|
|
- computed: {
|
|
|
- title() {
|
|
|
- switch (this.type) {
|
|
|
- case 'add':
|
|
|
- return '新增厂房';
|
|
|
- break;
|
|
|
- case 'edit':
|
|
|
- return '编辑厂房';
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- methods: {
|
|
|
- /* 获取区域集合 */
|
|
|
- async getBasicAreaList() {
|
|
|
- this.areaList = await basicAreaPageAPI(
|
|
|
- {
|
|
|
- pageNum: 1,
|
|
|
- size: 9999
|
|
|
+ // 'extInfo.moneyCeiling': [
|
|
|
+ // { required: true, message: '请输入', trigger: 'blur' }
|
|
|
+ // ],
|
|
|
+ // 'extInfo.useArea': [
|
|
|
+ // { required: true, message: '请输入', trigger: 'blur' }
|
|
|
+ // ]
|
|
|
+ },
|
|
|
+ visible: false,
|
|
|
+ type: '', // add/edit
|
|
|
+ loading: false,
|
|
|
+ options: {
|
|
|
+ principalDep: [],
|
|
|
+ principal: [],
|
|
|
+ workshop: [],
|
|
|
+ enabled: [
|
|
|
+ {
|
|
|
+ label: '生效',
|
|
|
+ value: 1
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '未生效',
|
|
|
+ value: 0
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ cityDataLabel
|
|
|
}
|
|
|
- )
|
|
|
- this.areaTreeList = this.$util.toTreeData({
|
|
|
- data: this.areaList,
|
|
|
- idField: 'id',
|
|
|
- parentIdField: 'parentId'
|
|
|
- });
|
|
|
-
|
|
|
+ };
|
|
|
},
|
|
|
- getAreaInfo(nodeInfo) {
|
|
|
- this.form.areaName = nodeInfo[0]?.pathLabels.join('/') || ''
|
|
|
- this.form.areaId = this.form.areaId || ''
|
|
|
+ computed: {
|
|
|
+ title() {
|
|
|
+ switch (this.type) {
|
|
|
+ case 'add':
|
|
|
+ return '新增厂房';
|
|
|
+ case 'copy':
|
|
|
+ return '新增厂房';
|
|
|
+ case 'edit':
|
|
|
+ return '编辑厂房';
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
- open(type, row) {
|
|
|
- this.type = type;
|
|
|
- this.visible = true;
|
|
|
- if (type == 'edit') {
|
|
|
- for (const key of Object.keys(this.form)) {
|
|
|
- if (key !== 'extInfo') {
|
|
|
- this.form[key] = row[key];
|
|
|
- } else {
|
|
|
- for (const el of Object.keys(this.form.extInfo)) {
|
|
|
- this.form.extInfo[el] = row.extInfo[el];
|
|
|
+ methods: {
|
|
|
+ /* 获取区域集合 */
|
|
|
+ async getBasicAreaList() {
|
|
|
+ this.areaList = await basicAreaPageAPI({
|
|
|
+ pageNum: 1,
|
|
|
+ size: 9999
|
|
|
+ });
|
|
|
+ this.areaTreeList = this.$util.toTreeData({
|
|
|
+ data: this.areaList,
|
|
|
+ idField: 'id',
|
|
|
+ parentIdField: 'parentId'
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getAreaInfo(nodeInfo) {
|
|
|
+ this.form.areaName = nodeInfo[0]?.pathLabels.join('/') || '';
|
|
|
+ this.form.areaId = this.form.areaId || '';
|
|
|
+ },
|
|
|
+ open(type, row) {
|
|
|
+ this.type = type;
|
|
|
+ this.visible = true;
|
|
|
+ if (type == 'edit' || type == 'copy') {
|
|
|
+ for (const key of Object.keys(this.form)) {
|
|
|
+ if (key !== 'extInfo') {
|
|
|
+ this.form[key] = row[key];
|
|
|
+ } else {
|
|
|
+ for (const el of Object.keys(this.form.extInfo)) {
|
|
|
+ this.form.extInfo[el] = row.extInfo[el];
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- // 请求下拉数据
|
|
|
- if (this.form.extInfo.factoryId) {
|
|
|
- this.getListWorkshopByParentId();
|
|
|
- }
|
|
|
- if (this.form.extInfo.principalDep) {
|
|
|
- this.getUserPage();
|
|
|
- }
|
|
|
- }else{
|
|
|
- this.form = { ...this.defaultForm };
|
|
|
- const info = {
|
|
|
+ // 请求下拉数据
|
|
|
+ if (this.form.extInfo.factoryId) {
|
|
|
+ this.getListWorkshopByParentId();
|
|
|
+ }
|
|
|
+ if (this.form.extInfo.principalDep) {
|
|
|
+ this.getUserPage();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.form = { ...this.defaultForm };
|
|
|
+ const info = {
|
|
|
principalDep: '', // 负责人部门
|
|
|
phone: '', // 手机号
|
|
|
locationDetail: '', // 详细地址
|
|
|
@@ -445,88 +436,94 @@ export default {
|
|
|
level: '', //楼层
|
|
|
moneyCeiling: '', //已配金额上限
|
|
|
useArea: '' // 使用面积
|
|
|
+ };
|
|
|
+ this.$set(this.form, 'extInfo', info);
|
|
|
+ this.$refs.form.resetFields();
|
|
|
}
|
|
|
- this.$set(this.form,'extInfo',info)
|
|
|
- this.$refs.form.resetFields();
|
|
|
- }
|
|
|
- },
|
|
|
- /* 保存编辑 */
|
|
|
- save() {
|
|
|
- this.$refs.form.validate((valid) => {
|
|
|
- if (!valid) {
|
|
|
- return false;
|
|
|
+ if (type == 'copy') {
|
|
|
+ this.form.code = '';
|
|
|
}
|
|
|
- this.loading = true;
|
|
|
+ },
|
|
|
+ /* 保存编辑 */
|
|
|
+ save() {
|
|
|
+ this.$refs.form.validate((valid) => {
|
|
|
+ if (!valid) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ this.loading = true;
|
|
|
|
|
|
- if (this.type == 'add') {
|
|
|
- delete this.form.id;
|
|
|
- }
|
|
|
- saveOrUpdate(this.form)
|
|
|
- .then((msg) => {
|
|
|
- this.loading = false;
|
|
|
- this.$message.success(msg);
|
|
|
- this.handleClose();
|
|
|
- this.$emit('done');
|
|
|
- })
|
|
|
- .catch((e) => {
|
|
|
- this.loading = false;
|
|
|
- this.$message.error(e.message);
|
|
|
- });
|
|
|
- });
|
|
|
- },
|
|
|
- restForm() {
|
|
|
- this.$refs.form.clearValidate();
|
|
|
- this.form = { ...this.defaultForm };
|
|
|
- },
|
|
|
- handleClose() {
|
|
|
- this.restForm();
|
|
|
- this.visible = false;
|
|
|
- },
|
|
|
- // 格式化公司数据
|
|
|
- toTreeData(val) {
|
|
|
- this.options.principalDep = this.$util.toTreeData({
|
|
|
- data: val,
|
|
|
- idField: 'id',
|
|
|
- parentIdField: 'parentId'
|
|
|
- });
|
|
|
- },
|
|
|
- // 获取人员
|
|
|
- getUserPage() {
|
|
|
- if (!this.form.extInfo.principalDep) return this.options.leaderId = []
|
|
|
- let par = {
|
|
|
- groupId: this.form.extInfo.principalDep,
|
|
|
- size: 999
|
|
|
- };
|
|
|
- getUserPage(par).then((res) => {
|
|
|
- this.options.principal = res.list;
|
|
|
- });
|
|
|
- },
|
|
|
- // 选择工厂
|
|
|
- change_factoryId() {
|
|
|
- let result = this.options_factory.find((n) => n.id == this.form.parentId);
|
|
|
- this.form.groupId = result.groupId;
|
|
|
- },
|
|
|
- // 选择负责人部门
|
|
|
- change_principalDep() {
|
|
|
- this.form.leaderId = '';
|
|
|
- this.options.principal = [];
|
|
|
- this.getUserPage();
|
|
|
- },
|
|
|
- // 选择负责人
|
|
|
- change_principal() {
|
|
|
- let result = this.options.principal.find(
|
|
|
- (n) => n.id == this.form.leaderId
|
|
|
- );
|
|
|
- this.form.extInfo.phone = result.phone;
|
|
|
+ if (this.type != 'edit') {
|
|
|
+ delete this.form.id;
|
|
|
+ }
|
|
|
+ saveOrUpdate(this.form)
|
|
|
+ .then((msg) => {
|
|
|
+ this.loading = false;
|
|
|
+ this.$message.success(msg);
|
|
|
+ this.handleClose();
|
|
|
+ this.$emit('done');
|
|
|
+ })
|
|
|
+ .catch((e) => {
|
|
|
+ this.loading = false;
|
|
|
+ this.$message.error(e.message);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ restForm() {
|
|
|
+ this.$refs.form.clearValidate();
|
|
|
+ this.form = { ...this.defaultForm };
|
|
|
+ },
|
|
|
+ handleClose() {
|
|
|
+ this.restForm();
|
|
|
+ this.visible = false;
|
|
|
+ },
|
|
|
+ // 格式化公司数据
|
|
|
+ toTreeData(val) {
|
|
|
+ this.options.principalDep = this.$util.toTreeData({
|
|
|
+ data: val,
|
|
|
+ idField: 'id',
|
|
|
+ parentIdField: 'parentId'
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 获取人员
|
|
|
+ getUserPage() {
|
|
|
+ if (!this.form.extInfo.principalDep)
|
|
|
+ return (this.options.leaderId = []);
|
|
|
+ let par = {
|
|
|
+ groupId: this.form.extInfo.principalDep,
|
|
|
+ size: 999
|
|
|
+ };
|
|
|
+ getUserPage(par).then((res) => {
|
|
|
+ this.options.principal = res.list;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 选择工厂
|
|
|
+ change_factoryId() {
|
|
|
+ let result = this.options_factory.find(
|
|
|
+ (n) => n.id == this.form.parentId
|
|
|
+ );
|
|
|
+ this.form.groupId = result.groupId;
|
|
|
+ },
|
|
|
+ // 选择负责人部门
|
|
|
+ change_principalDep() {
|
|
|
+ this.form.leaderId = '';
|
|
|
+ this.options.principal = [];
|
|
|
+ this.getUserPage();
|
|
|
+ },
|
|
|
+ // 选择负责人
|
|
|
+ change_principal() {
|
|
|
+ let result = this.options.principal.find(
|
|
|
+ (n) => n.id == this.form.leaderId
|
|
|
+ );
|
|
|
+ this.form.extInfo.phone = result.phone;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
-};
|
|
|
+ };
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
-.location-warp {
|
|
|
- display: flex;
|
|
|
- .detail {
|
|
|
- margin-left: 10px;
|
|
|
+ .location-warp {
|
|
|
+ display: flex;
|
|
|
+ .detail {
|
|
|
+ margin-left: 10px;
|
|
|
+ }
|
|
|
}
|
|
|
-}
|
|
|
</style>
|