Browse Source

组织新增

jly/task002
tianq 3 years ago
parent
commit
0f3a99fbdb
  1. 256
      src/views/modules/base/organization/organization.vue

256
src/views/modules/base/organization/organization.vue

@ -273,6 +273,22 @@
<el-option v-for="item in genderList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="身份证号" prop="idCard"><el-input v-model="peoForm.idCard" placeholder="请输入身份证号"></el-input></el-form-item>
<el-form-item label="村居委员职务" prop="viliagePosition">
<el-input v-model="peoForm.viliagePosition" placeholder="请输入村居委员职务"></el-input>
</el-form-item>
<el-form-item label="党组织职务" prop="partyPosition"><el-input v-model="peoForm.partyPosition" placeholder="请输入党组织职务"></el-input></el-form-item>
<el-form-item label="居住地址" prop="address"><el-input v-model="peoForm.address" placeholder="请输入居住地址"></el-input></el-form-item>
<el-form-item label="文化程度" prop="culture">
<el-select v-model="peoForm.culture" clearable placeholder="文化程度">
<el-option v-for="item in genderList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<!-- *身份证号 tianqian
*村居委员职务
*党组织职务
*居住地址
*文化程度 -->
<!-- 专兼职下拉框 -->
<el-form-item label="专兼职" prop="post">
<el-select v-model="peoForm.post" clearable placeholder="专兼职">
@ -285,12 +301,15 @@
<el-option v-for="item in dutyList" :key="item.roleId" :label="item.roleName" :value="item.roleId" :disabled="item.disabled"></el-option>
</el-select>
</el-form-item>
<!-- tianqian -->
<el-form-item label="工作职责" prop="duty"><el-input v-model="peoForm.duty" placeholder="请输入工作职责"></el-input></el-form-item>
<el-form-item label="角色" prop="newRoles">
<el-select v-model="peoForm.newRoles" multiple placeholder="请选择">
<el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<!-- tianqian -->
<el-form-item label="备注" prop="remark"><el-input v-model="peoForm.remark" type="textarea" placeholder="请输入备注"></el-input></el-form-item>
</el-form>
<div slot="footer">
<el-button @click="cancelPeo"> </el-button>
@ -383,23 +402,51 @@
</el-dialog>
<!-- 新增组织 -->
<el-dialog v-if="createAgencyDialogFlag" title="新增组织" :visible.sync="createAgencyDialogFlag" width="850" :before-close="handleClose">
<el-form label-width="120px">
<el-form-item label="组织名称"><el-input v-model="agencyForm.agencyName" placeholder="请输入组织名称"></el-input></el-form-item>
<el-dialog v-if="createAgencyDialogFlag" title="新增组织" :visible.sync="createAgencyDialogFlag" width="1050" :before-close="handleClose">
<el-form label-width="150px" :model="agencyForm" :rules="dataRuleOrg">
<el-form-item label="组织名称" prop="agencyName"><el-input v-model="agencyForm.agencyName" placeholder="请输入组织名称"></el-input></el-form-item>
<!-- 组织区划 -->
<el-form-item label="组织区划">
<el-form-item label="组织区划" prop="areaCode">
<el-select v-model="agencyForm.areaCode" placeholder="请选择组织区划" @change="handelZoing">
<el-option v-for="item in zonings" :key="item.areaCode" :label="item.areaName" :value="item.areaCode"></el-option>
</el-select>
</el-form-item>
<el-form-item label="组织编码"><el-input v-model="agencyForm.code" placeholder="请输入组织编码"></el-input></el-form-item>
<el-form-item label="村居/社区书记姓名" prop="secretaryName">
<el-input v-model="agencyForm.secretaryName" placeholder="请输入村居/社区书记姓名"></el-input>
</el-form-item>
<el-form-item label="村居/社区书记电话" prop="secretaryMobile">
<el-input v-model="agencyForm.secretaryMobile" placeholder="请输入村居/社区书记电话"></el-input>
</el-form-item>
<el-form-item label="值班电话" prop="dutyMobile"><el-input v-model="agencyForm.dutyMobile" placeholder="请输入值班电话"></el-input></el-form-item>
<el-form-item label="统一社会信用代码" prop="unifiedSocialCreditCode">
<el-input v-model="agencyForm.unifiedSocialCreditCode" placeholder="请输入统一社会信用代码"></el-input>
</el-form-item>
<el-form-item label="统一社会信用代码证书" prop="unifiedSocialCreditCodeCertificate">
<el-upload
:headers="$getElUploadHeaders()"
class="avatar-uploader"
:action="uploadUlr"
:show-file-list="false"
:data="{ customerId: customerId }"
:on-success="(response, file, fileList) => handleImgSuccess(index, response, file, fileList)"
:before-upload="beforeImgUpload"
>
<img v-if="agencyForm.unifiedSocialCreditCodeCertificate" :src="agencyForm.unifiedSocialCreditCodeCertificate" class="avatar" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
<el-form-item label="负责人"><el-input v-model="agencyForm.contacts" placeholder="请输入负责人名字"></el-input></el-form-item>
<el-form-item label="联系电话"><el-input v-model="agencyForm.mobile" placeholder="请输入联系电话"></el-input></el-form-item>
<el-form-item label="组织简介">
<el-input v-model="agencyForm.remark" type="textarea" rows="3" maxlength="500" show-word-limit placeholder="请输入组织简介"></el-input>
</el-form-item>
<!-- *详细地址 tianqian-->
<el-form-item label="详细地址" prop="fullAddress"><el-input v-model="agencyForm.fullAddress" placeholder="请输入详细地址"></el-input></el-form-item>
<el-form-item label="坐标"><div id="con"></div></el-form-item>
</el-form>
<div slot="footer">
@ -410,6 +457,42 @@
<!-- 修改市区级组织 -->
<el-dialog v-if="modifyCityOrgPop" title="修改组织" :visible.sync="modifyCityOrgPop" width="850" :before-close="handleClose">
<!-- <el-form label-width="150px" :model="OrgDetailsForm" :rules="dataRuleOrg">
<el-form-item label="组织名称" prop="agencyName"><el-input v-model="OrgDetailsForm.agencyName" placeholder="请输入组织名称"></el-input></el-form-item>
<el-form-item label="组织区划">
<el-select v-model="OrgDetailsForm.areaCode" placeholder="请选择组织区划" @change="handelZoing">
<el-option v-for="item in zonings" :key="item.areaCode" :label="item.areaName" :value="item.areaCode"></el-option>
</el-select>
</el-form-item>
<el-form-item label="组织编码"><el-input v-model="OrgDetailsForm.code" placeholder="请输入组织编码"></el-input></el-form-item>
<el-form-item label="村居/社区书记姓名" prop="secretaryName">
<el-input v-model="OrgDetailsForm.secretaryName" placeholder="请输入村居/社区书记姓名"></el-input>
</el-form-item>
<el-form-item label="村居/社区书记电话" prop="secretaryMobile">
<el-input v-model="OrgDetailsForm.secretaryMobile" placeholder="请输入村居/社区书记电话"></el-input>
</el-form-item>
<el-form-item label="值班电话" prop="dutyMobile"><el-input v-model="OrgDetailsForm.dutyMobile" placeholder="请输入值班电话"></el-input></el-form-item>
<el-form-item label="统一社会信用代码" prop="unifiedSocialCreditCode">
<el-input v-model="OrgDetailsForm.unifiedSocialCreditCode" placeholder="请输入统一社会信用代码"></el-input>
</el-form-item>
<el-form-item label="统一社会信用代码证书" prop="unifiedSocialCreditCodeCertificate">
<el-input v-model="OrgDetailsForm.unifiedSocialCreditCodeCertificate" placeholder="请输入统一社会信用代码证书"></el-input>
</el-form-item>
<el-form-item label="负责人"><el-input v-model="OrgDetailsForm.contacts" placeholder="请输入负责人名字"></el-input></el-form-item>
<el-form-item label="联系电话"><el-input v-model="OrgDetailsForm.mobile" placeholder="请输入联系电话"></el-input></el-form-item>
<el-form-item label="组织简介">
<el-input v-model="OrgDetailsForm.remark" type="textarea" rows="3" maxlength="500" show-word-limit placeholder="请输入组织简介"></el-input>
</el-form-item>
<el-form-item label="详细地址" prop="fullAddress"><el-input v-model="OrgDetailsForm.fullAddress" placeholder="请输入详细地址"></el-input></el-form-item>
<el-form-item label="坐标"><div id="con"></div></el-form-item>
</el-form> -->
<el-form label-width="120px">
<el-form-item label="组织名称"><el-input v-model="OrgDetailsForm.agencyName" placeholder="请输入组织名称"></el-input></el-form-item>
@ -505,7 +588,42 @@ import daiMap from '@/utils/dai-map';
export default {
data() {
//
const checkPhone = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入手机号'));
} else if (!/^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(1[|6|7|8][0-9]))\d{8}$/.test(value)) {
callback(new Error('请输入正确的手机号格式'));
} else {
callback();
}
};
//
const checkCardId = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入身份证号'));
} else if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(value)) {
callback(new Error('请输入正确的身份证号'));
} else {
callback();
}
};
//
const checkCreditCode = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入统一社会信用代码'));
// /[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}/
} else if (!/^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/g.test(value)) {
callback(new Error('请输入正确的统一社会信用代码'));
} else {
callback();
}
};
return {
uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadqrcodeV2',
customerId: '',
//
createAgencyDialogFlag: false,
//
@ -627,8 +745,15 @@ export default {
contacts: '',
mobile: '',
remark: '',
code: ''
code: '',
secretaryName: '',
secretaryMobile: '',
dutyMobile: '',
unifiedSocialCreditCode: '',
unifiedSocialCreditCodeCertificate: '',
fullAddress: '',
},
//
tree: [],
//
@ -670,7 +795,13 @@ export default {
areaCode: '',
agencyId: '',
areaName: '',
remark: ''
remark: '',
secretaryName: '',
secretaryMobile: '',
dutyMobile: '',
unifiedSocialCreditCode: '',
unifiedSocialCreditCodeCertificate: '',
fullAddress: '',
},
//
OrgUnitDetailsForm: {
@ -724,35 +855,53 @@ export default {
departmentName: [
{
required: true,
message: '社区名称必填',
message: '社区名称不能为空',
trigger: 'blur'
}
],
gridName: [
{
required: true,
message: '网格名称必填',
message: '网格名称不能为空',
trigger: 'blur'
}
],
addDepartmentName: [
{
required: true,
message: '部门名称必填',
message: '部门名称不能为空',
trigger: 'blur'
}
]
},
rulesPeo: {
name: [{ required: true, message: '姓名必填', trigger: 'blur' }],
mobile: [{ required: true, message: '手机号必填', trigger: 'blur' }],
gender: [{ required: true, message: '性别必填', trigger: 'blur' }],
post: [{ required: true, message: '专兼职必填', trigger: 'blur' }],
duty: [{ required: true, message: '职责必填', trigger: 'blur' }],
newRoles: [{ required: true, message: '角色必填', trigger: 'blur' }]
name: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
mobile: [{ required: true, validator: checkPhone, message: '手机号不能为空', trigger: 'blur' }],
gender: [{ required: true, message: '性别不能为空', trigger: 'blur' }],
idCard: [{ required: true, validator: checkCardId, trigger: 'blur' }],
viliagePosition: [{ required: true, message: '村居委员职务不能为空', trigger: 'blur' }],
partyPosition: [{ required: true, message: '党组织职务不能为空', trigger: 'blur' }],
address: [{ required: true, message: '居住地址不能为空', trigger: 'blur' }],
culture: [{ required: true, message: '文化程度不能为空', trigger: 'blur' }],
post: [{ required: true, message: '专兼职不能为空', trigger: 'blur' }],
duty: [{ required: true, message: '职责不能为空', trigger: 'blur' }],
newRoles: [{ required: true, message: '角色不能为空', trigger: 'blur' }]
},
dataRuleOrg: {
// checkPhone
// checkCardId
// checkCreditCode
agencyName: [{ required: true, message: '组织名称不能为空', trigger: 'blur' }],
areaCode: [{ required: true, message: '组织区划不能为空', trigger: 'blur' }],
secretaryName: [{ required: true, message: '村居/社区书记姓名不能为空', trigger: 'blur' }],
secretaryMobile: [{ required: true, validator: checkPhone, trigger: 'blur' }],
dutyMobile: [{ required: true, message: '值班电话不能为空', trigger: 'blur' }],
unifiedSocialCreditCode: [{ required: true, validator: checkCreditCode, trigger: 'blur' }],
unifiedSocialCreditCodeCertificate: [{ required: true, message: '统一社会信用代码证书不能为空', trigger: 'blur' }],
fullAddress: [{ required: true, message: '详细地址不能为空', trigger: 'blur' }]
},
selDeptType: '',
searchStaffKeyword: '',
@ -821,6 +970,23 @@ export default {
// this.initMap()
},
methods: {
handleImgSuccess(index, res, file) {
if (res.code === 0 && res.msg === 'success') {
console.log('res.data.url', res.data.url);
this.agencyForm.unifiedSocialCreditCodeCertificate = res.data.url;
} else {
this.$message.error(res.msg);
}
},
beforeImgUpload(file) {
const isLt1M = file.size / 1024 / 1024 < 1;
if (!isLt1M) {
this.$message.error('上传图片大小不能超过 1MB!');
}
return isLt1M;
},
// async handleExport () {
// let title = "";
@ -872,7 +1038,7 @@ export default {
let fileFormData = new FormData();
fileFormData.append('file', this.files); //filenamefiletest.zip
fileFormData.append('agencyId',this.currentAgencyId);
fileFormData.append('agencyId', this.currentAgencyId);
url = '/gov/org/department/yantai/import';
window.app.ajax.post2(
@ -892,7 +1058,6 @@ export default {
// this.$message.error(rspMsg)
}
// this.loadTable();
},
(rspMsg, data) => {},
{ headers: { 'Content-Type': 'multipart/form-data' } }
@ -1389,6 +1554,14 @@ export default {
(this.agencyForm.mobile = ''),
(this.agencyForm.code = ''),
(this.agencyForm.remark = ''),
(this.agencyForm.secretaryName = ''),
(this.agencyForm.secretaryMobile = ''),
(this.agencyForm.dutyMobile = ''),
(this.agencyForm.unifiedSocialCreditCode = ''),
(this.agencyForm.unifiedSocialCreditCodeCertificate = ''),
(this.agencyForm.fullAddress = ''),
(this.latitude = ''),
(this.longitude = '');
},
@ -1401,6 +1574,12 @@ export default {
(this.OrgDetailsForm.mobile = ''),
(this.OrgDetailsForm.centerAddress = ''),
(this.OrgDetailsForm.areaCode = '');
(this.OrgDetailsForm.secretaryName = ''),
(this.OrgDetailsForm.secretaryMobile = ''),
(this.OrgDetailsForm.dutyMobile = ''),
(this.OrgDetailsForm.unifiedSocialCreditCode = ''),
(this.OrgDetailsForm.unifiedSocialCreditCodeCertificate = ''),
(this.OrgDetailsForm.fullAddress = ''),
this.OrgDetailsForm.agencyId = '';
(this.latitude = ''), (this.longitude = '');
},
@ -2118,7 +2297,13 @@ export default {
code: this.agencyForm.code,
remark: this.agencyForm.remark,
latitude: this.latitude,
longitude: this.longitude
longitude: this.longitude,
secretaryName: this.secretaryName,
secretaryMobile: this.secretaryMobile,
dutyMobile: this.dutyMobile,
unifiedSocialCreditCode: this.unifiedSocialCreditCode,
unifiedSocialCreditCodeCertificate: this.unifiedSocialCreditCodeCertificate,
fullAddress: this.fullAddress,
};
const { data, code, msg } = await requestPost(url, params);
@ -2192,6 +2377,12 @@ export default {
this.latitude = data.latitude;
this.longitude = data.longitude;
this.OrgDetailsForm.agencyId = data.agencyId;
this.OrgDetailsForm.secretaryName=data.secretaryName;
this.OrgDetailsForm.secretaryMobile=data.secretaryMobile;
this.OrgDetailsForm.dutyMobile=data.dutyMobile;
this.OrgDetailsForm.unifiedSocialCreditCode=data.unifiedSocialCreditCode;
this.OrgDetailsForm.unifiedSocialCreditCodeCertificate=data.unifiedSocialCreditCodeCertificate;
this.OrgDetailsForm.fullAddress=data.fullAddress;
} else {
this.$message.error(msg);
}
@ -2395,4 +2586,27 @@ export default {
.el-tag + .el-tag {
margin-left: 10px;
}
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409EFF;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 178px;
height: 178px;
line-height: 178px;
text-align: center;
}
.avatar {
width: 178px;
height: 178px;
display: block;
}
</style>

Loading…
Cancel
Save