<template>
|
<div class="act_add">
|
<v-header :title="(info_id ? '编辑' : '新增') + '社会组织'"></v-header>
|
<el-form
|
:model="form"
|
:rules="rules"
|
label-position="right"
|
ref="ruleForm"
|
label-width="150px"
|
class="demo-ruleForm"
|
>
|
<div class="fl-fw">
|
<el-form-item label="组织名称:" prop="name">
|
<el-input
|
class="input-width"
|
placeholder="请输入组织名称"
|
size="small"
|
v-model.trim="form.name"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="统一社会信用代码:" prop="agencyCode">
|
<el-input
|
class="input-width"
|
placeholder="请输入统一社会信用代码"
|
size="small"
|
v-model.trim="form.agencyCode"
|
></el-input>
|
</el-form-item>
|
</div>
|
<div class="fl-fw">
|
<el-form-item label="法定代表人:" prop="corporationName">
|
<el-input
|
class="input-width"
|
placeholder="请输入法定代表人"
|
size="small"
|
v-model.trim="form.corporationName"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="联系电话:" prop="contactPhone">
|
<el-input
|
class="input-width"
|
placeholder="请输入联系电话"
|
size="small"
|
maxlength="18"
|
v-model.trim="form.contactPhone"
|
></el-input>
|
</el-form-item>
|
</div>
|
<div class="fl-fw">
|
<el-form-item label="服务类型:" prop="serviceType">
|
<el-select
|
class="input-width"
|
v-model="form.serviceType"
|
clearable
|
placeholder="请选择服务类型"
|
>
|
<el-option
|
v-for="item in serveList"
|
:key="item.id"
|
:label="item.name"
|
:value="item.id"
|
>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="组织类型:" prop="companyType">
|
<el-select
|
v-model="form.companyType"
|
class="input-width"
|
clearable
|
placeholder="请选择组织类型"
|
>
|
<el-option :value="1" label="社会团体"></el-option>
|
<el-option :value="2" label="民办非企业单位"></el-option>
|
<el-option :value="3" label="基金会"></el-option>
|
</el-select>
|
</el-form-item>
|
</div>
|
<el-form-item label="所属社区:" prop="streetId" v-if="userType !== 2">
|
<el-select
|
class="input-width"
|
v-model="form.streetId"
|
clearable
|
placeholder="请选择所属社区"
|
>
|
<el-option
|
v-for="item in typeList"
|
:key="item.communityId"
|
:label="item.name"
|
:value="item.communityId"
|
>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<div class="fl-fw">
|
<el-form-item label="成立方式:">
|
<div class="input-width">
|
<el-radio-group v-model="form.buildType">
|
<el-radio-button :label="1">社区孵化</el-radio-button>
|
<el-radio-button :label="2">民政注册</el-radio-button>
|
</el-radio-group>
|
</div>
|
</el-form-item>
|
<el-form-item label="注册时间:">
|
<el-date-picker
|
class="input-width"
|
v-model="form.buildDate"
|
type="date"
|
format="yyyy-MM-dd"
|
value-format="yyyy-MM-dd"
|
placeholder="选择注册时间"
|
>
|
</el-date-picker>
|
</el-form-item>
|
</div>
|
<div class="fl-fw">
|
<el-form-item label="地址" prop="maillingAddr">
|
<el-input
|
class="input-width"
|
placeholder="请选择地址"
|
size="small"
|
type="textarea"
|
resize="none"
|
:rows="3"
|
v-model="form.maillingAddr"
|
maxlength="100"
|
@focus="mapCheck"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="状态:">
|
<div class="input-width">
|
<el-radio v-model="form.status" :label="1">启用</el-radio>
|
<el-radio v-model="form.status" :label="0">停用</el-radio>
|
</div>
|
</el-form-item>
|
</div>
|
<div class="fl-fw">
|
<el-form-item label="业务范围">
|
<el-input
|
class="textarea-width"
|
placeholder="请输入业务范围"
|
size="small"
|
type="textarea"
|
resize="none"
|
:rows="4"
|
v-model="form.businessScope"
|
maxlength="300"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="组织标识">
|
<UploadImg
|
@fileHandle="fileHandle"
|
:imgShow="form.attachUrl"
|
:imgNum="1"
|
/>
|
</el-form-item>
|
</div>
|
<el-form-item label="组织介绍">
|
<el-input
|
class="textarea-width"
|
placeholder="请输入组织介绍"
|
size="small"
|
type="textarea"
|
resize="none"
|
:rows="4"
|
v-model="form.businessImpact"
|
maxlength="300"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="管理员账号:" prop="account">
|
<el-input
|
class="input-width"
|
placeholder="请输入管理员账号"
|
size="small"
|
maxlength="20"
|
v-model.trim="form.account"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="密码:" prop="password">
|
<el-input
|
class="input-width"
|
placeholder="请输入密码"
|
size="small"
|
type="password"
|
maxlength="20"
|
v-model.trim="form.password"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="确认密码:" prop="confimpassword">
|
<el-input
|
class="input-width"
|
placeholder="请输入确认密码"
|
size="small"
|
type="password"
|
maxlength="20"
|
v-model.trim="form.confimpassword"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="">
|
<el-button size="small" @click="$router.go(-1)">返回</el-button>
|
<el-button
|
size="small"
|
type="primary"
|
:loading="btnloading"
|
@click="submitHandle"
|
>保存</el-button
|
>
|
</el-form-item>
|
</el-form>
|
<el-dialog
|
title="地址"
|
:visible.sync="dialogVisibleMap"
|
:before-close="handleCloseMap"
|
append-to-body
|
>
|
<MapBox ref="mapContent" @setLocation="setLocation" />
|
<div style="text-align: center; margin-top: 20px">
|
<el-button @click="handleCloseMap">取 消</el-button>
|
<el-button type="primary" @click="mapComfirm">确 定</el-button>
|
</div>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import MapBox from "../../../components/map/map.vue";
|
// import { PHONE } from "../../../utils/validation";
|
import { objCopyPro } from "../../../utils/common";
|
import UploadImg from "../../../components/upload/uploadImg.vue";
|
export default {
|
components: {
|
MapBox,
|
UploadImg,
|
},
|
data() {
|
const confimHandle = (rule, value, callback) => {
|
if (this.form.password === value) {
|
if (!value) return callback(new Error("确认密码不能为空"));
|
callback();
|
} else {
|
callback(new Error("两次密码不相同"));
|
}
|
};
|
return {
|
btnLoading: false,
|
dialogVisibleMap: false,
|
info_id: "",
|
positionData: {},
|
btnloading: false,
|
form: {
|
name: "", // 组织名称
|
agencyCode: "", // 社会信用代码
|
corporationName: "", // 法定代表人
|
contactPhone: "", // 联系电话
|
serviceType: "", // 服务类型
|
companyType: 1, // 组织类型
|
streetId: "", // 所属街道
|
buildType: 1, // 成立方式
|
buildDate: "", // 注册时间
|
maillingAddr: "", // 地址
|
latitude: "", // 纬度
|
longitude: "", // 经度
|
status: 1, // 状态
|
businessScope: "", // 业务范围
|
account: "", // 管理员账号
|
password: "", // 密码
|
confimpassword: "", // 确认密码
|
isSociety: 1,
|
businessImpact: "",
|
attachUrl: "",
|
},
|
rules: {
|
name: [
|
{
|
required: true,
|
message: "请输入组织名称",
|
trigger: "blur",
|
},
|
],
|
agencyCode: [
|
{
|
required: true,
|
message: "请输入统一社会信用代码",
|
trigger: "blur",
|
},
|
],
|
corporationName: [
|
{
|
required: true,
|
message: "请输入法定代表人",
|
trigger: "blur",
|
},
|
],
|
contactPhone: [
|
{
|
required: true,
|
message: "请输入联系电话",
|
trigger: "blur",
|
},
|
],
|
account: [
|
{
|
required: true,
|
message: "请输入管理员账号",
|
trigger: "blur",
|
},
|
],
|
password: [
|
{
|
required: true,
|
message: "请输入密码",
|
trigger: "blur",
|
},
|
],
|
confimpassword: [
|
{
|
required: true,
|
validator: confimHandle,
|
trigger: "blur",
|
},
|
],
|
streetId: [
|
{
|
required: true,
|
message: "请选择所属街道",
|
trigger: "change",
|
},
|
],
|
serviceType: [
|
{
|
required: true,
|
message: "请选择服务类型",
|
trigger: "change",
|
},
|
],
|
}, // 表单验证
|
typeList: [],
|
serveList: [],
|
userType: 0,
|
};
|
},
|
mounted() {
|
this.userType = demo.$session.get("user").userType;
|
this.roleData();
|
this.info_id = this.$route.query.id;
|
if (this.info_id) {
|
this.$api.get("comActSocialOrg/" + this.info_id, {}, (e) => {
|
e.confimpassword = e.confimpassword;
|
this.form = objCopyPro(this.form, e);
|
});
|
}
|
},
|
methods: {
|
roleData() {
|
// this.$api.get(
|
// "systemmanagement/listrolebackstage",
|
// {
|
// pageNum: 1,
|
// pageSize: 99999,
|
// },
|
// (e) => {
|
// this.roleList = e.records;
|
// }
|
// );
|
this.$api.post(
|
"comActColumn/queryAll",
|
{
|
page: 1,
|
size: 999999,
|
type: 1,
|
},
|
(e) => {
|
this.serveList = e.records || [];
|
}
|
);
|
this.$api.get("communityactivity/community/westList", {}, (e) => {
|
this.typeList = e;
|
});
|
},
|
fileHandle(data) {
|
if (data.type === "loading") {
|
this.btnloading = data.val;
|
} else {
|
this.form.attachUrl = data.val;
|
}
|
},
|
mapCheck() {
|
this.dialogVisibleMap = true;
|
this.$nextTick(() => {
|
this.$refs.mapContent.getLocation();
|
});
|
},
|
handleCloseMap() {
|
this.dialogVisibleMap = false;
|
this.positionData = {};
|
},
|
mapComfirm() {
|
console.log(this.positionData);
|
if (this.positionData.addr) {
|
this.form.longitude = this.positionData.lat;
|
this.form.latitude = this.positionData.lng;
|
this.form.maillingAddr = this.positionData.addr;
|
}
|
this.dialogVisibleMap = false;
|
this.positionData = {};
|
},
|
setLocation(data) {
|
this.positionData = data;
|
},
|
// 保存
|
submitHandle() {
|
this.$refs["ruleForm"].validate((val) => {
|
if (val) {
|
const url = this.info_id
|
? "comActSocialOrg/update"
|
: "comActSocialOrg";
|
this.$api.post(url, this.form, (e) => {
|
demo.toast((this.info_id ? "编辑" : "新增") + "成功");
|
this.$nextTick(() => {
|
this.$router.go(-1);
|
});
|
});
|
}
|
});
|
},
|
},
|
};
|
</script>
|
<style lang='less' scoped>
|
.input-width {
|
width: 300px;
|
}
|
.textarea-width {
|
width: 450px;
|
}
|
.act_add {
|
overflow: auto;
|
}
|
</style>
|