Browse Source

1.修复上传文件提示登录过期.2.修复客户本地新增的时候的一些列问题

wxz_dy_form_config
wxz 2 years ago
parent
commit
6c0863806d
  1. 4
      epmet-oper-web/src/main.js
  2. 472
      epmet-oper-web/src/views/modules/customer/manage/customer-add-or-update.vue

4
epmet-oper-web/src/main.js

@ -1,6 +1,7 @@
import Vue from 'vue' import Vue from 'vue'
import Element from 'element-ui' import Element from 'element-ui'
import Cookies from 'js-cookie'
import App from '@/App' import App from '@/App'
import i18n from '@/i18n' import i18n from '@/i18n'
import router from '@/router' import router from '@/router'
@ -62,7 +63,8 @@ window.SITE_CONFIG['storeState'] = cloneDeep(store.state)
// el-uploader的header配置 // el-uploader的header配置
Vue.prototype.$getElUploadHeaders = () => ({ Vue.prototype.$getElUploadHeaders = () => ({
Authorization: localStorage.getItem('token') || '' Authorization: Cookies.get('token') || ''
// Authorization: localStorage.getItem('token') || ''
}) })
new Vue({ new Vue({

472
epmet-oper-web/src/views/modules/customer/manage/customer-add-or-update.vue

@ -1,166 +1,167 @@
<template> <template>
<el-dialog :visible.sync="visible" <el-dialog
:title="!dataForm.id ? $t('add') : $t('update')" :visible.sync="visible"
:close-on-click-modal="false" :title="!dataForm.id ? $t('add') : $t('update')"
:close-on-press-escape="false"> :close-on-click-modal="false"
<el-form :model="dataForm" :close-on-press-escape="false"
:rules="dataRule" >
ref="dataForm" <el-form
@keyup.enter.native="dataFormSubmitHandle()" :model="dataForm"
:label-width="$i18n.locale === 'en-US' ? '120px' : '120px'"> :rules="dataRule"
<!-- <el-form-item label="功能" ref="dataForm"
prop="xialazhushi1" @keyup.enter.native="dataFormSubmitHandle()"
v-if="true"> :label-width="$i18n.locale === 'en-US' ? '120px' : '120px'"
<el-select v-model="dataForm.xialazhushi1" >
placeholder="请选择" <el-form-item label="客户名称" prop="paCustomer.customerName">
clearable> <el-input
<el-option v-for="item in functionList" v-model="dataForm.paCustomer.customerName"
:key="item.id" placeholder="客户名称"
:label="item.functionName" ></el-input>
:value="item.id">
</el-option>
</el-select>
</el-form-item>-->
<el-form-item label="客户名称"
prop="customerName">
<el-input v-model="dataForm.paCustomer.customerName"
placeholder="客户名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="logo" label="Logo">
<el-form <el-upload
:inline="true" :headers="$getElUploadHeaders()"
:model="dataForm" class="item_width_1 avatar-uploader"
:rules="dataRule" :action="uploadUlr"
ref="ref_form_2" :show-file-list="false"
style="margin: 0 auto; width: 860px" :on-success="handleImgSuccess"
:label-width="'100px'" :before-upload="beforeImgUpload"
> >
<el-form-item prop="logo" label="Logo"> <img
<el-upload v-if="dataForm.paAgency.logo"
:headers="$getElUploadHeaders()" :src="dataForm.paAgency.logo"
class="item_width_1 avatar-uploader" style="width: 70px; height: 70px"
:action="uploadUlr" class="function-icon"
:show-file-list="false" />
:on-success="handleImgSuccess" <i v-else class="el-icon-plus avatar-uploader-icon"></i>
:before-upload="beforeImgUpload" </el-upload>
> </el-form-item>
<img <el-form-item label="平台名称(根级组织名称)" prop="paAgency.agencyName">
v-if="dataForm.paAgency.logo" <el-input
:src="dataForm.paAgency.logo" v-model="dataForm.paAgency.agencyName"
style="width: 70px; height: 70px" placeholder="平台名称"
class="function-icon" ></el-input>
/>
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-form>
<el-form-item label="平台名称"
prop="agencyName">
<el-input v-model="dataForm.paAgency.agencyName"
placeholder="平台名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="组织级别" <el-form-item label="组织级别" prop="paAgency.level">
prop="level"> <el-select
<el-select v-model="dataForm.paAgency.level" v-model="dataForm.paAgency.level"
placeholder="请选择" placeholder="请选择"
clearable> clearable
<el-option v-for="item in zuzhijibieList" >
:key="item.dictValue" <el-option
:label="item.dictName" v-for="item in zuzhijibieList"
:value="item.dictValue"> :key="item.dictValue"
:label="item.dictName"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="组织地区code" <el-form-item label="组织地区code" prop="paAgency.areaCode">
prop="areaCode"> <el-input
<el-input v-model="dataForm.paAgency.areaCode" v-model="dataForm.paAgency.areaCode"
placeholder="组织地区code"></el-input> placeholder="组织地区code"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="组织省份" <el-form-item label="组织省份" prop="paAgency.province">
prop="province"> <el-input
<el-input v-model="dataForm.paAgency.province" v-model="dataForm.paAgency.province"
placeholder="组织省份"></el-input> placeholder="组织省份"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="组织城市" <el-form-item label="组织城市" prop="paAgency.city">
prop="city"> <el-input
<el-input v-model="dataForm.paAgency.city" v-model="dataForm.paAgency.city"
placeholder="组织城市"></el-input> placeholder="组织城市"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="组织区域" <el-form-item label="组织区域" prop="paAgency.district">
prop="district"> <el-input
<el-input v-model="dataForm.paAgency.district" v-model="dataForm.paAgency.district"
placeholder="组织区域"></el-input> placeholder="组织区域"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="最大网格数" <el-form-item label="最大网格数" prop="paAgency.partybranchnum">
prop="partybranchnum"> <el-input-number
<el-input-number v-model="dataForm.paAgency.partybranchnum" v-model="dataForm.paAgency.partybranchnum"
placeholder="最大网格数"></el-input-number> placeholder="最大网格数"
></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="有效期" <el-form-item label="有效期" prop="paAgency.validityTime">
prop="validityTime"> <el-date-picker
<el-date-picker v-model="dataForm.paAgency.validityTime" v-model="dataForm.paAgency.validityTime"
type="datetime" type="datetime"
format="yyyy 年 MM 月 dd 日" format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="有效期"></el-date-picker> placeholder="有效期"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="超级管理员" <el-form-item label="超级管理员" prop="paUser.realName">
prop="realName"> <el-input
<el-input v-model="dataForm.paUser.realName" v-model="dataForm.paUser.realName"
placeholder="超级管理员"></el-input> placeholder="超级管理员"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="联系方式" <el-form-item label="联系方式" prop="paUser.phone">
prop="realName"> <el-input
<el-input v-model="dataForm.paUser.phone" v-model="dataForm.paUser.phone"
placeholder="联系方式"></el-input> placeholder="联系方式"
></el-input>
</el-form-item>
<el-form-item label="证件号" prop="paUser.idCard">
<el-input
v-model="dataForm.paUser.idCard"
placeholder="证件号"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<template slot="footer"> <template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> <el-button @click="visible = false">{{ $t("cancel") }}</el-button>
<el-button type="primary" <el-button type="primary" @click="dataFormSubmitHandle()">{{
@click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> $t("confirm")
}}</el-button>
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import debounce from 'lodash/debounce' import debounce from "lodash/debounce";
import CForm from '@c/CForm' import CForm from "@c/CForm";
import CDialog from '@c/CDialog' import CDialog from "@c/CDialog";
import { mapGetters } from 'vuex' import { mapGetters } from "vuex";
import { Loading } from 'element-ui' // Loading import { Loading } from "element-ui"; // Loading
export default { export default {
data () { data() {
return { return {
uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadimg', uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadimg",
visible: false, visible: false,
dataForm: { dataForm: {
id: '', id: "",
paAgency:{ paAgency: {
logo:'', logo: "",
agencyName: '', agencyName: "",
areaCode: '', areaCode: "",
city: '', city: "",
district: '', district: "",
level: '', level: "",
levelNum: '', levelNum: "",
partybranchnum: '', partybranchnum: "",
province: '', province: "",
validityTime:'' validityTime: "",
}, },
paCustomer:{ paCustomer: {
customerName:'', customerName: "",
}, },
paUser:{ paUser: {
gender:'1', gender: "1",
phone:'', phone: "",
realName:'' realName: "",
idCard: "",
}, },
// xialazhushi1: '', // xialazhushi1: '',
@ -169,107 +170,182 @@ export default {
}, },
zuzhijibieList: [ zuzhijibieList: [
{ {
'dictName': '社区级', dictName: "社区级",
'dictValue': 'community' dictValue: "community",
}, { },
'dictName': '乡(镇、街道)级', {
'dictValue': 'street' dictName: "乡(镇、街道)级",
}, { dictValue: "street",
'dictName': '区县级', },
'dictValue': 'district' {
}, { dictName: "区县级",
'dictName': '市级', dictValue: "district",
'dictValue': 'city' },
}, { {
'dictName': '省级', dictName: "市级",
'dictValue': 'province' dictValue: "city",
} },
{
dictName: "省级",
dictValue: "province",
},
], ],
functionList: [] functionList: [],
};
}
}, },
components: { components: {
CForm, CForm,
CDialog CDialog,
}, },
created () { created() {
this.queryFunctionList() this.queryFunctionList();
}, },
computed: { computed: {
dataRule () { dataRule() {
return { return {
/* agencyName: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],*/
logo: [ logo: [
{ {
required: false, required: false,
message: this.$t('validate.required'), message: this.$t("validate.required"),
trigger: 'blur' trigger: "blur",
} },
],
"paCustomer.customerName": [
{
required: true,
message: "客户名称必填",
trigger: "blue",
},
],
"paAgency.agencyName": [
{
required: true,
message: '根级组织名称必填',
trigger: 'blue'
}
],
"paAgency.level": [
{
required: true,
message: '组织级别必填',
trigger: 'change'
}
],
"paAgency.areaCode": [
{
required: true,
message: '组织地区码必填',
trigger: 'blue'
}
],
"paAgency.province": [
{
required: true,
message: '组织省份必填',
trigger: 'blue'
}
],
"paUser.realName": [
{
required: true,
message: '管理员姓名必填',
trigger: 'blue'
}
],
"paUser.phone": [
{
required: true,
message: '管理员电话必填',
trigger: 'blue'
}
],
"paUser.idCard": [
{
required: true,
message: '管理员证件号必填',
trigger: 'blue'
}
],
"paAgency.validityTime": [
{
required: true,
message: '必填',
trigger: 'change'
}
] ]
} };
} },
}, },
methods: { methods: {
// logo // logo
handleImgSuccess(res, file) { handleImgSuccess(res, file) {
console.log("!") console.log("!");
if (res.code === 0 && res.msg === 'success') { if (res.code === 0 && res.msg === "success") {
console.log("!") console.log("!");
this.dataForm.paAgency.logo = res.data.url this.dataForm.paAgency.logo = res.data.url;
} else { } else {
this.$message.error(res.msg) this.$message.error(res.msg);
} }
}, },
beforeImgUpload(file) { beforeImgUpload(file) {
// const isPNG = file.type === 'image/png' // const isPNG = file.type === 'image/png'
const isLt1M = file.size / 1024 / 1024 < 1 const isLt1M = file.size / 1024 / 1024 < 1;
// if (!isPNG) { // if (!isPNG) {
// this.$message.error(' PNG !') // this.$message.error(' PNG !')
// } // }
if (!isLt1M) { if (!isLt1M) {
this.$message.error('上传图片大小不能超过 1MB!') this.$message.error("上传图片大小不能超过 1MB!");
} }
// return isPNG && isLt1M // return isPNG && isLt1M
return isLt1M return isLt1M;
}, },
init () { init() {
this.visible = true this.visible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['dataForm'].resetFields() this.$refs["dataForm"].resetFields();
if (this.dataForm.id) { if (this.dataForm.id) {
this.getInfo() this.getInfo();
} }
}) });
}, },
// //
dataFormSubmitHandle: debounce(function() { dataFormSubmitHandle: debounce(
this.$refs['dataForm'].validate((valid) => { function () {
if (!valid) { this.$refs["dataForm"].validate((valid) => {
return false console.log(this.dataForm);
} if (!valid) {
console.log(this.dataForm) return false;
this.$http['post']('/oper/crm/customer/initLocally', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} }
this.$message({
message: this.$t('prompt.success'), if (true) {
type: 'success', this.$message.info("成功");
duration: 500, return;
onClose: () => { }
this.visible = false
this.$emit('refreshDataList') console.log(this.dataForm);
} this.$http["post"]("/oper/crm/customer/initLocally", this.dataForm)
}) .then(({ data: res }) => {
}).catch(() => { }) if (res.code !== 0) {
}) return this.$message.error(res.msg);
}, 1000, { 'leading': true, 'trailing': false }), }
} this.$message({
} message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script> </script>

Loading…
Cancel
Save