|
@@ -1,185 +1,296 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
- <el-dialog v-dialog-drag style="overflow: hidden;" :title="popTitle" :visible.sync="dialogVisible" width="32%"
|
|
|
- append-to-body>
|
|
|
+ <el-dialog v-dialog-drag style="overflow: auto;" :title="popTitle" :visible.sync="dialogVisible" width="900px"
|
|
|
+ append-to-body>
|
|
|
<el-divider></el-divider>
|
|
|
- <div>
|
|
|
- <el-image :src="url"></el-image>
|
|
|
- <el-button class="alter">更换</el-button>
|
|
|
- </div>
|
|
|
- <div style="height: 400px;">
|
|
|
- <el-scrollbar style="height: 90%; width: 100%; top: -20px;">
|
|
|
- <el-form :model="form" ref="form" label-position="left">
|
|
|
- <el-form-item label="公司全称:" prop="fullName">
|
|
|
- <el-input v-model="form.fullName" type="text"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="公司简称:" prop="abbreviateName">
|
|
|
- <el-input v-model="form.abbreviateName" type="text"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="上级公司:" prop="parentCorporation">
|
|
|
- <el-select v-model="form.parentCorporation">
|
|
|
- <el-option v-for="item in superiorOptions" :value="item.value" :key="item.value"
|
|
|
- :label="item.label"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="统一社会信用代码:" prop="sccide">
|
|
|
- <el-input v-model="form.sccide"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item v-model="form.registeredAddress" label="注册地址:" prop="registeredAddress">
|
|
|
- <el-cascader :options="addressOptions" placeholder="选择城市/区级" filterable>
|
|
|
- </el-cascader>
|
|
|
- <el-input style="margin-left: 10px;"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item v-model="form.businessAddress" label="经营地址:" prop="businessAddress">
|
|
|
- <el-cascader :options="addressOptions" placeholder="选择城市/区级" filterable>
|
|
|
- </el-cascader>
|
|
|
- <el-input style="margin-left: 10px;"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="法人姓名:" prop="legalName">
|
|
|
- <el-input v-model="form.legalName" type="text"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="公司编码:" prop="orporationCode">
|
|
|
- <el-input v-model="form.corporationCode" type="text"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="编制人数:" prop="complementCount">
|
|
|
- <el-input v-model="form.complementCount" type="text"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="在岗人数:" prop="staffCount">
|
|
|
- <el-input v-model="form.staffCount" type="text"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item>
|
|
|
-
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </el-scrollbar>
|
|
|
- </div>
|
|
|
+
|
|
|
+ <el-radio-group v-model="addType" style="margin: 20px 200px">
|
|
|
+ <el-radio label="1">企业</el-radio>
|
|
|
+ <el-radio label="2">部门</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+
|
|
|
+ <el-form v-if="show.company" :model="companyForm" :rules="formRules" label-position="right" label-width="200px">
|
|
|
+ <el-form-item label="公司全称:" prop="company_name">
|
|
|
+ <el-input v-model="companyForm.company_name" type="text" placeholder="请输入公司全称"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="公司简称:">
|
|
|
+ <el-input v-model="companyForm.abbreviation" type="text" placeholder="请输入公司简称"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="上级公司:">
|
|
|
+ <el-select v-model="companyForm.parentCorporation" placeholder="请选择上级公司">
|
|
|
+ <el-option v-for="item in superiorOptions" :value="item.value" :key="item.value"
|
|
|
+ :label="item.label"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="统一社会信用代码:">
|
|
|
+ <el-input v-model="companyForm.code" placeholder="统一社会信用代码"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="注册地址:">
|
|
|
+ <el-cascader v-model="registered_address.pro" :options="province" placeholder="选择城市/区级"
|
|
|
+ filterable>
|
|
|
+ </el-cascader>
|
|
|
+ <el-input style="margin-left: 5px;width: 450px" v-model="registered_address.info"
|
|
|
+ placeholder="详细地址"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="经营地址:">
|
|
|
+ <el-cascader v-model="business_address.pro" :options="province" placeholder="选择城市/区级"
|
|
|
+ filterable></el-cascader>
|
|
|
+ <el-input style="margin-left: 5px;width: 450px" v-model="business_address.info"
|
|
|
+ placeholder="详细地址"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="法人姓名:">
|
|
|
+ <el-input v-model="companyForm.legal_person_name" type="text"
|
|
|
+ placeholder="请输入法人姓名"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="公司编码:">
|
|
|
+ <el-input v-model="companyForm.company_code" type="text" placeholder="请输入公司编码"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="编制人数:">
|
|
|
+ <el-input-number v-model="companyForm.on_guard_size" :min="0"
|
|
|
+ placeholder="编制人数"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="在岗人数:">
|
|
|
+ <el-input-number v-model="companyForm.staff_size" :min="0" placeholder="在岗人数"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <el-form v-if="show.dept" :model="deptForm" label-position="right" label-width="200px">
|
|
|
+ <el-form-item label="部门名称:">
|
|
|
+ <el-input v-model="deptForm.department_name" placeholder="请输入部门名称"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="上级公司:">
|
|
|
+ <el-select v-model="deptForm.company_id" placeholder="请选择上级公司">
|
|
|
+ <el-option v-for="item in companyList" :key="item.id" :value="item.id">{{ item.company_name }}</el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="部门负责人:">
|
|
|
+ <el-input v-model="deptForm.principal" placeholder="部门负责人"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="部门接口人:">
|
|
|
+ <el-input v-model="deptForm.liaison_officer" placeholder="部门接口人"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="排重名:">
|
|
|
+ <el-input v-model="deptForm.duplicate_name" placeholder="排重名"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="在岗人数:">
|
|
|
+ <el-input-number v-model="deptForm.on_guard" placeholder="在岗人数" :min="0"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="自由员工:">
|
|
|
+ <el-input-number v-model="deptForm.freelance_staff" placeholder="自由员工"
|
|
|
+ :min="0"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="协作员工:">
|
|
|
+ <el-input-number v-model="deptForm.cooperation_staff" placeholder="协作员工"
|
|
|
+ :min="0"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="第三方员工:">
|
|
|
+ <el-input-number v-model="deptForm.thirdparty_staff" placeholder="第三方员工"
|
|
|
+ :min="0"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="部门职责:">
|
|
|
+ <el-input type="textarea" v-model="deptForm.censure" placeholder="部门职责"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
- <el-button style="background-color: #2EA8E6;color: #FFFFFF; margin-right: 30px;">下一个</el-button>
|
|
|
<el-button style="background-color: #B3B3B3;color: #FFFFFF;margin-right: 30px;"
|
|
|
- @click="resetForm('form')">重置</el-button>
|
|
|
- <el-button style="background-color: #2EA8E6;color: #FFFFFF;">更新</el-button>
|
|
|
+ @click="resetForm('form')">重置
|
|
|
+ </el-button>
|
|
|
+ <el-button style="background-color: #2EA8E6;color: #FFFFFF;" @click="submit">确定</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-export default {
|
|
|
+import province from '@/data/province.json'
|
|
|
+import {addCompany, addDept, getCompanyList} from "@/api/company/company";
|
|
|
|
|
|
+export default {
|
|
|
+ comments: {},
|
|
|
+ watch: {
|
|
|
+ addType: function (val) {
|
|
|
+ if (val == 1) {
|
|
|
+ this.popTitle = '添加企业'
|
|
|
+ this.show.dept = false;
|
|
|
+ this.show.company = true;
|
|
|
+ } else if (val == 2) {
|
|
|
+ this.popTitle = '添加部门'
|
|
|
+ this.show.company = false;
|
|
|
+ this.show.dept = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
data() {
|
|
|
return {
|
|
|
+ province,
|
|
|
popTitle: '添加公司',
|
|
|
dialogVisible: false,
|
|
|
- url: '',
|
|
|
- form: {
|
|
|
- fullName: "",
|
|
|
- abbreviateName: "",
|
|
|
- parentCorporation: "",
|
|
|
- sccide: "",
|
|
|
- registeredAddress: "",
|
|
|
- businessAddress: "",
|
|
|
- legalName: "",
|
|
|
- corporationCode: "",
|
|
|
- complementCount: "",
|
|
|
- staffCount: ""
|
|
|
+ addType: '1',
|
|
|
+ show: {
|
|
|
+ company: true,
|
|
|
+ dept: false,
|
|
|
},
|
|
|
- superiorOptions: [
|
|
|
- {
|
|
|
- value: "0",
|
|
|
- label: "中讯邮电咨询设计院"
|
|
|
- }
|
|
|
- ],
|
|
|
- addressOptions: [],
|
|
|
+ registered_address: {
|
|
|
+ pro: '',
|
|
|
+ info: ''
|
|
|
+ },
|
|
|
+ business_address: {
|
|
|
+ pro: '',
|
|
|
+ info: ''
|
|
|
+ },
|
|
|
+ formRules: {
|
|
|
+ company_name: [
|
|
|
+ { required: true, message: '请输入公司名称', trigger: 'change' }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ companyList: [],
|
|
|
+ companyForm: {},
|
|
|
+ deptForm: {},
|
|
|
+ form: {}
|
|
|
+
|
|
|
}
|
|
|
},
|
|
|
+ mounted() {
|
|
|
+ this.getCompanyData()
|
|
|
+ },
|
|
|
methods: {
|
|
|
close() {
|
|
|
|
|
|
},
|
|
|
resetForm() {
|
|
|
this.$refs.form.resetFields();
|
|
|
+ },
|
|
|
+ submit() {
|
|
|
+ if (this.addType == '1') {
|
|
|
+ this.addCompany();
|
|
|
+ } else if (this.addType == '2') {
|
|
|
+ this.addDept();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getCompanyData(page) {
|
|
|
+ getCompanyList('', 1, 999).then(res=>{
|
|
|
+ let data = res.data;
|
|
|
+ if (data.code == '0') {
|
|
|
+ this.companyList = data.data;
|
|
|
+ this.$forceUpdate()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ addCompany() {
|
|
|
+ let business_address = '';
|
|
|
+ if (this.business_address.pro) {
|
|
|
+ for (let i = 0; i < this.business_address.pro.length; i++) {
|
|
|
+ if (i>0) {
|
|
|
+ business_address += '/'
|
|
|
+ }
|
|
|
+ business_address += this.business_address.pro[i]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ business_address += '---'+this.business_address.info;
|
|
|
+
|
|
|
+ let registered_address = '';
|
|
|
+ if (this.registered_address.pro) {
|
|
|
+ for (let i = 0; i < this.registered_address.pro.length; i++) {
|
|
|
+ if (i>0) {
|
|
|
+ registered_address += '/'
|
|
|
+ }
|
|
|
+ registered_address += this.registered_address.pro[i]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ registered_address += '---'+this.registered_address.info;
|
|
|
+
|
|
|
+ let param = JSON.parse(JSON.stringify(this.companyForm));
|
|
|
+ param.on_guard_size = ''+param.on_guard_size
|
|
|
+ param.staff_size = ''+param.staff_size
|
|
|
+ param.registered_address = registered_address
|
|
|
+ param.business_address = business_address
|
|
|
+ addCompany(param).then(res=>{
|
|
|
+ let data = res.data;
|
|
|
+ if (data.code==0) {
|
|
|
+ this.dialogVisible = false;
|
|
|
+ this.$message.success('添加成功');
|
|
|
+ } else {
|
|
|
+ this.$message.error(data.message);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ addDept() {
|
|
|
+ let param = JSON.parse(JSON.stringify(this.deptForm));
|
|
|
+ addDept(param).then(res=>{
|
|
|
+ let data = res.data;
|
|
|
+ if (data.code == 0) {
|
|
|
+ this.dialogVisible = false;
|
|
|
+ this.$message.success('添加成功');
|
|
|
+ } else {
|
|
|
+ this.$message.error(data.message)
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
</script>
|
|
|
<style lang="less" scoped>
|
|
|
-/deep/.el-dialog__footer {
|
|
|
- text-align: center;
|
|
|
+/deep/ .el-dialog__footer {
|
|
|
+ text-align: center;
|
|
|
}
|
|
|
-/deep/.el-dialog__body {
|
|
|
- padding: 0 20px;
|
|
|
+
|
|
|
+/deep/ .el-dialog__body {
|
|
|
+ padding: 0 20px;
|
|
|
}
|
|
|
|
|
|
|
|
|
-/deep/.el-divider--horizontal {
|
|
|
- display: block;
|
|
|
- height: 1px;
|
|
|
- width: 100%;
|
|
|
- margin: 0 !important;
|
|
|
+/deep/ .el-divider--horizontal {
|
|
|
+ display: block;
|
|
|
+ height: 1px;
|
|
|
+ width: 100%;
|
|
|
+ margin: 0 !important;
|
|
|
}
|
|
|
|
|
|
.el-image {
|
|
|
- width: 100%;
|
|
|
- height: 100px;
|
|
|
- margin-top: 10px;
|
|
|
+ width: 100%;
|
|
|
+ height: 100px;
|
|
|
+ margin-top: 10px;
|
|
|
}
|
|
|
|
|
|
.alter {
|
|
|
- background-color: #2EA8E6;
|
|
|
- color: #FFFFFF;
|
|
|
- float: right;
|
|
|
- position: relative;
|
|
|
- top: -40px;
|
|
|
- right: 10px;
|
|
|
- width: 80px !important;
|
|
|
+ background-color: #2EA8E6;
|
|
|
+ color: #FFFFFF;
|
|
|
+ float: right;
|
|
|
+ position: relative;
|
|
|
+ top: -40px;
|
|
|
+ right: 10px;
|
|
|
+ width: 80px !important;
|
|
|
}
|
|
|
|
|
|
.el-icon-close {
|
|
|
- margin-left: 480px;
|
|
|
+ margin-left: 480px;
|
|
|
}
|
|
|
|
|
|
-/deep/.el-tabs__header {
|
|
|
- height: 0;
|
|
|
- margin-bottom: 0;
|
|
|
+/deep/ .el-tabs__header {
|
|
|
+ height: 0;
|
|
|
+ margin-bottom: 0;
|
|
|
}
|
|
|
|
|
|
|
|
|
.el-select {
|
|
|
- width: 100%;
|
|
|
+ width: 100%;
|
|
|
}
|
|
|
|
|
|
.el-form {
|
|
|
- padding: 0 5% 0 5%;
|
|
|
-
|
|
|
- .el-form-item {
|
|
|
- padding-top: 10px;
|
|
|
- margin-inline: 20px;
|
|
|
- margin-bottom: 0;
|
|
|
- }
|
|
|
-
|
|
|
- .el-cascader {
|
|
|
- /deep/.el-input__inner {
|
|
|
- width: 100px;
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- /deep/.el-form-item__label {
|
|
|
- padding: 0;
|
|
|
- text-align: left;
|
|
|
- font-weight: 550;
|
|
|
- }
|
|
|
+ .el-form-item {
|
|
|
+ margin-bottom: 12px;
|
|
|
+ }
|
|
|
|
|
|
- /deep/.el-form-item__content {
|
|
|
- display: flex;
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
|
|
|
.el-button {
|
|
|
- width: 100px;
|
|
|
- height: 30px;
|
|
|
- text-align: center;
|
|
|
- padding: 5px;
|
|
|
+ width: 100px;
|
|
|
+ height: 30px;
|
|
|
+ text-align: center;
|
|
|
+ padding: 5px;
|
|
|
}
|
|
|
</style>
|