md
This commit is contained in:
parent
d867e19fbe
commit
4f8272caa9
@ -69,9 +69,9 @@
|
||||
<el-button style="margin-left: 10px;" slot="reference" size="mini" circle icon="el-icon-menu" />
|
||||
</el-popover>
|
||||
</el-tooltip>
|
||||
<el-tooltip style="margin-left: 10px;" class="item" effect="dark" content="导出" placement="top" v-if="download!=null">
|
||||
<!-- <el-tooltip style="margin-left: 10px;" class="item" effect="dark" content="导出" placement="top" v-if="download!=null">
|
||||
<el-button size="mini" circle icon="el-icon-download" @click="download()" />
|
||||
</el-tooltip>
|
||||
</el-tooltip> -->
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -50,7 +50,10 @@ export default {
|
||||
name: "AddressSelectPicker",
|
||||
props:{
|
||||
addressType:{
|
||||
type:[String,Number]
|
||||
type:String
|
||||
},
|
||||
useSiteCode:{
|
||||
type:String
|
||||
},
|
||||
},
|
||||
components: { CountryPicker },
|
||||
@ -79,6 +82,7 @@ export default {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
addressType: this.addressType,
|
||||
useSiteCode: this.useSiteCode,
|
||||
searchValue:null,
|
||||
},
|
||||
};
|
||||
@ -88,6 +92,10 @@ export default {
|
||||
this.queryParams.addressType=this.addressType;
|
||||
this.getList();
|
||||
},
|
||||
useSiteCode(newVal){
|
||||
this.queryParams.useSiteCode=this.useSiteCode;
|
||||
this.getList();
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
|
||||
@ -133,6 +133,10 @@ export default {
|
||||
addressType(newVal){
|
||||
this.queryParams.addressType=newVal;
|
||||
this.defaultItems=null;
|
||||
},
|
||||
useSiteCode(newVal){
|
||||
this.queryParams.useSiteCode=newVal;
|
||||
this.defaultItems=null;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="联系人" prop="customerName">
|
||||
<el-form-item label="联系人" prop="contact">
|
||||
<el-input v-model="form.contact" placeholder="" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@ -20,10 +20,10 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="寄件人" prop="customerName">
|
||||
<el-form-item label="联系人" prop="contact">
|
||||
<el-input
|
||||
v-model="queryParams.customerName"
|
||||
:placeholder="$t('寄件人')"
|
||||
v-model="queryParams.contact"
|
||||
:placeholder="$t('联系人')"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
@input="handleQuery"
|
||||
@ -127,28 +127,21 @@
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
size="mini"
|
||||
@click="handleUpload"
|
||||
v-hasPermi="['emis:emisTmsScanRecord:add']"
|
||||
>导入</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
size="mini"
|
||||
@click="handleUpload"
|
||||
v-hasPermi="['emis:emisTmsScanRecord:add']"
|
||||
>下载导入模版</el-button>
|
||||
<el-upload
|
||||
action=""
|
||||
name="file"
|
||||
accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
||||
:show-file-list="false"
|
||||
v-hasPermi="['emis:emisCustomerUser:add']"
|
||||
:before-upload="beforeAvatarUpload">
|
||||
<el-button slot="trigger" plain class="filter-item" size="mini" type="primary" >导入</el-button>
|
||||
<el-link type="primary" style="line-height: 28px;font-size:13px" href="/static/tpl/imp_month_user.xlsx">下载导入模版</el-link>
|
||||
</el-upload>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['emis:emisCustomerUser:export']"
|
||||
@ -259,11 +252,46 @@
|
||||
<batchUpdateForm :ids="ids" @on-changed="handleFormChanged" @on-cancel="cancelForm"></batchUpdateForm>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
<!-- <el-dialog :title="title" :visible.sync="open" width="50%" v-dialogDrag :close-on-click-modal="false" append-to-body>
|
||||
<el-row :gutter="0">
|
||||
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="80px">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="选择文件" prop="uploadFile" >
|
||||
<el-upload
|
||||
action=""
|
||||
name="file"
|
||||
accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
||||
:show-file-list="true"
|
||||
:limit="1"
|
||||
:file-list="fileList"
|
||||
:on-change="fileChange"
|
||||
:before-upload="beforeUpload">
|
||||
<el-button slot="trigger" plain class="filter-item" size="mini" type="primary" >选择文件</el-button>
|
||||
<el-link type="primary" style="line-height: 28px;font-size:13px" href="/static/tpl/imp_exp_order.xls">下载Excel模板</el-link>
|
||||
<div v-if="uploadExcelDataInfo !=''" style="color: black;font-size: 12px;font-weight: 800;">{{ fileName }} {{ uploadExcelDataInfo }}</div>
|
||||
</el-upload>
|
||||
<el-alert
|
||||
title="注意"
|
||||
type="success"
|
||||
description="仅允许导入“xls”或“xlsx”格式文件!"
|
||||
close-text="知道了">
|
||||
</el-alert>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-form>
|
||||
</el-row>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="batchImpDataForm">开始导入</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog> -->
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listMonthUser, delEmisCustomerUser } from "@/api/emis/emisCustomerUser";
|
||||
import { listMonthUser, delEmisCustomerUser,addMonthUser } from "@/api/emis/emisCustomerUser";
|
||||
import elDateSimplePicker from '@/components/DatePickerAdv/elDateSimplePicker';
|
||||
// import emisCustomerUserView from '@/views/emis/emisCustomerUser/emisCustomerUserView';
|
||||
import monthUserForm from '@/views/emis/emisCustomerUser/monthUserForm';
|
||||
@ -281,6 +309,7 @@ import EmisUserSimplePicker2 from '@/views/emis/EmisBaseTools/EmisUserSimplePick
|
||||
import PayeePicker from '@/views/emis/EmisBaseTools/PayeePicker.vue';
|
||||
import SalemanPicker from '@/views/emis/EmisBaseTools/SalemanPicker.vue';
|
||||
|
||||
import XLSX from 'xlsx'
|
||||
|
||||
export default {
|
||||
name: "MonthUserList",
|
||||
@ -437,6 +466,106 @@ export default {
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
},
|
||||
|
||||
beforeAvatarUpload(file) {
|
||||
this.readerData(file)
|
||||
return false
|
||||
},
|
||||
readerData(rawFile) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const reader = new FileReader()
|
||||
reader.onload = e => {
|
||||
const data = e.target.result
|
||||
const workbook = XLSX.read(data, { type: 'array' })
|
||||
const firstSheetName = workbook.SheetNames[0] // firstSheetName
|
||||
// if (!excelTypes.includes(firstSheetName)) {
|
||||
// reject('无法识别当前Excel模板')
|
||||
// this.$message.error('无法识别当前Excel模板')
|
||||
// return
|
||||
// }
|
||||
const worksheet = workbook.Sheets[firstSheetName]
|
||||
// const header = this.getHeaderRow(worksheet) // 标题
|
||||
const results = XLSX.utils.sheet_to_json(worksheet)
|
||||
|
||||
console.log(results);
|
||||
|
||||
this.batchImportData(results);
|
||||
|
||||
resolve()
|
||||
}
|
||||
reader.readAsArrayBuffer(rawFile)
|
||||
})
|
||||
},
|
||||
getHeaderRow(sheet) {
|
||||
const headers = []
|
||||
const range = XLSX.utils.decode_range(sheet['!ref'])
|
||||
let C
|
||||
const R = range.s.r
|
||||
/* start in the first row */
|
||||
for (C = range.s.c; C <= range.e.c; ++C) { /* walk every column in the range */
|
||||
const cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })]
|
||||
/* find the cell in the first row */
|
||||
let hdr = 'UNKNOWN ' + C // <-- replace with your desired default
|
||||
if (cell && cell.t) hdr = XLSX.utils.format_cell(cell)
|
||||
headers.push(hdr)
|
||||
}
|
||||
return headers
|
||||
},
|
||||
async batchImportData(results) {
|
||||
const _index = 1
|
||||
let loadingInstance = this.$loading({
|
||||
text: '正在导入 ' + _index + ' ...'
|
||||
})
|
||||
for (let index = 0; index < results.length; index++) {
|
||||
const element = results[index]
|
||||
// 客户名称 英文简称 月结编号 联系人 手机号码 主归属网点 回款联系人 销售联系人 结算类型 国家 省份 城市 区县 联系地址 E-Mail 是否启用 是否开启OMS账号 首次签约时间 备注
|
||||
const postData= {
|
||||
customerName: element['客户名称'],
|
||||
customerNameEn: element['英文简称'],
|
||||
contact: element['联系人'],
|
||||
phone: element['手机号码'],
|
||||
customerType: '2',
|
||||
settledType: '2',
|
||||
userType: '2',
|
||||
monthlyPayCode: element['月结编号'],
|
||||
ownerSite: element['主归属网点'],
|
||||
country: element['国家'],
|
||||
province: element['省份'],
|
||||
city:element['城市'],
|
||||
county: element['区县'],
|
||||
address: element['联系地址'],
|
||||
email: element['E-Mail'],
|
||||
status: element['是否启用'],
|
||||
payee: element['回款联系人'],
|
||||
salesmen: element['销售联系人'],
|
||||
dataFrom: "pc",
|
||||
firstSigningDay:element['首次签约时间'],
|
||||
blOpenOms: element['是否开启OMS账号'],
|
||||
remark: element['备注']
|
||||
};
|
||||
// postData.cosignee= element['']
|
||||
// postData.cosigneeAddress= element['收件地址']
|
||||
// postData.cosigneeTelephone= element['收件电话']
|
||||
// postData.country= element['国家']
|
||||
// postData.extJsonStr = JSON.stringify(extJsonStr)
|
||||
|
||||
const res = await addMonthUser(postData)
|
||||
console.log(res);
|
||||
|
||||
if (res.code !== 200) {
|
||||
this.$message.error(JSON.stringify(res.msg))
|
||||
loadingInstance.close()
|
||||
return
|
||||
}
|
||||
loadingInstance.close()
|
||||
loadingInstance = this.$loading({
|
||||
text: '正在导入 ' + _index + ' 数据...'
|
||||
})
|
||||
}
|
||||
loadingInstance.close()
|
||||
this.handleQuery();
|
||||
},
|
||||
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
// this.download('emis/emisCustomerUser/export', {
|
||||
@ -449,18 +578,20 @@ export default {
|
||||
qParam.pageNum=1;
|
||||
qParam.pageSize=5000;
|
||||
|
||||
listMonthUser(this.addDateRange(qParam, this.dateTimeRange)).then(response => {
|
||||
listMonthUser(this.addDateRange(this.queryParams, this.dateTimeRange)).then(response => {
|
||||
this.downloadLoading = false
|
||||
if (response.code === 200) {
|
||||
const curList = response.rows
|
||||
import('@/vendor/Export2Excel').then(excel => {
|
||||
const tHeader = ['id','客户编码','客户名称','英文简称','电话','手机号','客户类型','结算类型','用户类型','所属公司','部门id','头像','性别','邀请人','最后登录ip','最后登录日期','称呼','union_id','wxopenid','主月结卡号','登录账号','登录密码','归属站点','国家','省份','城市','区县','镇','地址','email','发件国','发件省','发件区','发件区','发件镇','邮编','启用状态','真实姓名','身份证号','回款联系人','销售联系人','是否开通oms','是否短信','专属业务员','排序','备注','删除标志(0代表存在','创建者','创建时间','更新者','更新时间','创建网点','修改站点代码',];
|
||||
const filterVal = ['id','customerCode','customerName','customerNameEn','phone','mobile','customerType','settledType','userType','company','deptId','avatar','sex','invitationInfo','loginIp','loginDate','nickName','unionId','openid','monthlyPayCode','userName','password','ownerSite','country','province','city','county','town','address','email','sendCountry','sendProvince','sendCity','sendCounty','sendTown','postCode','status','realName','idNo','payee','salesmen','blOpenOms','blSms','opEmpCode','orderNum','remark','delFlag','createBy','createTime','updateBy','updateTime','createSite','updateSite',];
|
||||
// 客户名称 英文简称 月结编号 联系人 手机号码 主归属网点 回款联系人 销售联系人 结算类型 国家 省份 城市 区县 联系地址 E-Mail 是否启用 是否开启OMS账号 首次签约时间 备注
|
||||
|
||||
const tHeader = ['客户名称','英文简称','月结编号','联系人','手机号码','主归属网点','回款联系人','销售联系人','结算类型','国家','省份','城市','区县','联系地址','E-Mail','是否启用','是否开启OMS账号','首次签约时间','备注'];
|
||||
const filterVal = ['customerName','customerNameEn','monthlyPayCode','contact','phone','ownerSite','payee','salesmen','settedType','country','province','city','county','address','email','status','blOpenOms','firstSigningDay','remark'];
|
||||
const data = this.formatJson(filterVal, curList, response.rows)
|
||||
excel.export_json_to_excel({
|
||||
header: tHeader,
|
||||
data,
|
||||
filename: '快递客户用户',
|
||||
filename: '月结客户',
|
||||
autoWidth: true
|
||||
})
|
||||
loadingInstance.close()
|
||||
@ -475,9 +606,9 @@ export default {
|
||||
return ++index
|
||||
}
|
||||
if (j === 'status') {
|
||||
var statusStr='xxx'
|
||||
if(v[j] == 10){
|
||||
statusStr='xxx'
|
||||
var statusStr='停用'
|
||||
if(v[j] == 1){
|
||||
statusStr='启用'
|
||||
}
|
||||
return statusStr;
|
||||
}
|
||||
|
||||
@ -213,7 +213,7 @@
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="寄件人" prop="sender.name">
|
||||
<CustomerAddressSimplePicker0 addressType="1" v-model="form.sender.name" @onChange="onChangeSelectSender"></CustomerAddressSimplePicker0>
|
||||
<CustomerAddressSimplePicker0 addressType="1" :useSiteCode="form.sendSiteCode" v-model="form.sender.name" @onChange="onChangeSelectSender"></CustomerAddressSimplePicker0>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
@ -277,7 +277,7 @@
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="收件人" prop="reciever.name">
|
||||
<CustomerAddressSimplePicker1 addressType="2" :countryCode="form.reciever.country" v-model="form.reciever.name" @onChange="onChangeSelectReceiver"></CustomerAddressSimplePicker1>
|
||||
<CustomerAddressSimplePicker1 addressType="2" :useSiteCode="form.sendSiteCode" :countryCode="form.reciever.country" v-model="form.reciever.name" @onChange="onChangeSelectReceiver"></CustomerAddressSimplePicker1>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@ -656,8 +656,8 @@
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="总运费" prop="freight" label-width="70px">
|
||||
<el-input v-model="form.freight" placeholder="" >
|
||||
</el-input>
|
||||
<el-input v-if="form.calcFeeType == 3" v-model="form.freight" placeholder="" > </el-input>
|
||||
<el-input v-else v-model="form.freight" disabled placeholder="" > </el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="费用备注" prop="feeRemaker" label-width="70px">
|
||||
<el-input v-model="form.feeRemaker" type="textarea" placeholder="" >
|
||||
@ -713,7 +713,7 @@
|
||||
</div>
|
||||
|
||||
<el-dialog :title="titleSelectAddress" :visible.sync="openSelectAddress" width="60%" :destroy-on-close="true" v-dialogDrag append-to-body>
|
||||
<AddressSelectPicker0 :addressType="addressType" @onSelected="onAddressChangeSelect"></AddressSelectPicker0>
|
||||
<AddressSelectPicker0 :addressType="addressType" :useSiteCode="form.sendSiteCode" @onSelected="onAddressChangeSelect"></AddressSelectPicker0>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
@ -954,13 +954,13 @@ data() {
|
||||
{ required: true, message: "目的地网点代码不能为空", trigger: "blur" }
|
||||
],
|
||||
custNo: [
|
||||
{ required: true, message: "月结卡号不能为空", trigger: "blur" }
|
||||
{ required: true, message: "月结卡号不能为空", trigger: ["blur",'change'] }
|
||||
],
|
||||
payee: [
|
||||
{ required: true, message: "销售回款人不能为空", trigger: "blur" }
|
||||
{ required: true, message: "销售回款人不能为空", trigger: ["blur",'change'] }
|
||||
],
|
||||
salesmen: [
|
||||
{ required: true, message: "销售联系人不能为空", trigger: "blur" }
|
||||
{ required: true, message: "销售联系人不能为空", trigger: ["blur",'change'] }
|
||||
],
|
||||
takePieceEmployeeCode: [
|
||||
{ required: true, message: "取件员代码不能为空", trigger: ["blur",'change'] }
|
||||
@ -1566,11 +1566,17 @@ methods: {
|
||||
&& this.form.dispatchUnderlingSiteCode
|
||||
&& this.form.calcFeeType
|
||||
){
|
||||
|
||||
let calcFeeType=this.form.calcFeeType;
|
||||
if(calcFeeType==3){
|
||||
calcFeeType=1;
|
||||
}
|
||||
|
||||
let postData={
|
||||
productType: this.form.productType,
|
||||
customerCode: this.form.customerCode,
|
||||
custNo: this.form.custNo,
|
||||
calcFeeType: this.form.calcFeeType,
|
||||
calcFeeType:calcFeeType,
|
||||
settlementWeight: this.form.settlementWeight,
|
||||
sendSiteCode: this.form.sendSiteCode,
|
||||
dispatchUnderlingSiteCode: this.form.dispatchUnderlingSiteCode,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user