| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644 |
- /*******************************************************************************
- * Copyright(c) 2021 dongke All rights reserved. / Confidential
- * 类的信息:
- * 1.程序名称:
- * 2.功能描述:客户收款新建
- * 编辑履历:
- * 作者 日期 版本 修改内容
- * 于继渤 2022-5-25 1.00 新建
- *******************************************************************************/
- const Constants = require('@/utils/Constants.js');
- import Dialog from '@/dist/dialog/dialog.js';
- const mixins = require('@/mixins/index.js')
- const app = getApp()
- Page({
- mixins: [mixins],
- /**
- * 页面的初始数据
- */
- data: {
- cardList: [{
- name: 'main'
- },],
- contentObj: {
- main: [{
- code: 'cusName',
- type: 'selectIcon',
- urlKey: 'selectCustomers',
- required: true,
- title: mixins.$t('customerName'),
- },
- {
- code: 'cusPhone',
- type: 'phone',
- title: mixins.$t('cusPhone'),
- required: true,
- },
- {
- code: 'addressFull',
- type: 'address',
- title: mixins.$t('adddressFull'),
- required: true,
- readonly: true,
- },
- {
- code: 'addressNo',
- type: 'str',
- required: true,
- title: mixins.$t('addressNo')
- },
- {
- code: 'staffId',
- name: 'staffName',
- title: mixins.$t('staffId'),
- type: 'choose',
- required: true,
- urlKey: 'chooseStaff'
- }, {
- code: 'orgId',
- name: 'orgName',
- title: mixins.$t('orgId'),
- type: 'choose',
- required: true,
- urlKey: 'chooseOrg'
- },
- {
- code: 'cusDebt',
- type: 'number',
- title: mixins.$t("cusDebt"),
- readonly: true
- },
- {
- code: 'sumAmtRec',
- type: 'number',
- title: mixins.$t("amountCollected"),
- readonly: false,
- required: true,
- },
- {
- code: 'remarks',
- type: 'textarea',
- title: mixins.$t("remarks"),
- readonly: false
- },
- {
- code: 'file',
- type: 'uploader',
- title: mixins.$t("uploader")
- }
- ],
- },
- objInfo: {},
- buttonSaveList: [{
- code: 'add',
- title: mixins.$t("collection")
- }],
- contentSaveList: [{
- code: 'need',
- title: mixins.$t("saleCollection"),
- type: 'str'
- }, {
- code: 'amount',
- content: 0,
- type: 'number'
- }],
- routeObjName: 'cusReceiptPayment',
- accountService: app.globalData['accountService'],
- customerService: app.globalData['customerService'],
- },
- /**
- * @desc : 计算需收款
- * @date : 2024/2/1 15:49
- * @author : 于继渤
- */
- changeNumberBlur(e) {
- let formData = JSON.parse(this.data.formData)
- let contentSaveList = this.data.contentSaveList
- contentSaveList[1].content = formData.sumAmtRec ? formData.sumAmtRec : 0
- this.setData({
- contentSaveList: contentSaveList
- })
- },
- /**
- * @desc : 非空校验
- * @author : 周兴
- * @date : 2024/2/20 11:46
- */
- validDatas(formData) {
- let flag = true;
- let contentObj = this.data.contentObj;
- contentObj['main'].forEach(item => {
- let title = item.title ? item.title : item.code
- // 如果必须输入,就要进行判断
- if (item.required && formData[item.code] == null) {
- item.errMsg = title + '不为空'
- flag = false;
- }
- if (item.code == 'cusPhone') {
- let myreg = Constants.Mobile_Phone_Number_Regular_Expression
- if (!myreg.test(formData[item.code])) {
- item.errMsg = title + '格式错误'
- flag = false;
- }
- }
- })
- this.setData({
- contentObj: contentObj
- })
- return flag;
- },
- /**
- * @desc : 保存数据服务-跳转收款页面
- * @date : 2024/2/1 15:49
- * @author : 于继渤
- */
- open(e) {
- let _this = this
- let data = JSON.parse(_this.data.formData)
- if (!_this.validDatas(data)) {
- return
- }
- if (!data.sumAmtRec || data.sumAmtRec == 0) {
- // 是否弹出询问框
- Dialog.confirm({
- message: '请输入金额',
- showCancelButton: false,
- }).then(() => {
- }).catch(() => { })
- return
- }
- // TODO 要考虑
- // this.setData({
- // loading:true
- // })
- wx.navigateTo({
- url: this.data.route.selectCollectionConfirm.url,
- events: {
- // 回调后
- refresh: function (data) {
- //销售订单跳转
- if (_this.data.formType == Constants.formMode.add) {
- _this.setData({
- loading: true,
- isrefresh: true
- })
- } else {
- let formData = {}
- formData.staff = {
- text: _this.data.orgStaffInfo.staffName,
- value: [_this.data.orgStaffInfo.staffId]
- }
- formData.org = {
- text: _this.data.orgStaffInfo.orgName,
- value: [_this.data.orgStaffInfo.orgId]
- }
- formData.orgId = _this.data.orgStaffInfo.orgId
- formData.orgName = _this.data.orgStaffInfo.orgName
- formData.orgList = [{
- orgId: _this.data.orgStaffInfo.orgId,
- orgName: _this.data.orgStaffInfo.orgName,
- ownerFlag: true,
- allocationRatio: 100,
- }]
- formData.staffId = _this.data.orgStaffInfo.staffId
- formData.staffName = _this.data.orgStaffInfo.staffName
- formData.staffList = [{
- staffId: _this.data.orgStaffInfo.staffId,
- staffName: _this.data.orgStaffInfo.staffName,
- ownerFlag: true,
- allocationRatio: 100,
- }]
- // 需收款
- let contentSaveList = _this.data.contentSaveList
- contentSaveList.forEach(item => {
- if (item.code == 'amount') {
- item.content = 0
- }
- })
- _this.setData({
- formData: JSON.stringify(formData),
- contentSaveList
- })
- }
- }
- },
- success: function (res) {
- //设置参数
- let item = _this.setSaveData()
- res.eventChannel.emit('params', {
- item: item,
- formType: 3,
- formReturnMode: _this.data.formReturnMode
- })
- }
- })
- },
- onShow() {
- if (this.data.isrefresh) {
- this.handleNavBack()
- }
- },
- /**
- * @desc : 处理保存参数
- * @date : 2024/2/1 15:49
- * @author : 于继渤
- */
- setSaveData() {
- let formData = JSON.parse(this.data.formData)
- let param = formData
- param.cusName = formData.cusName
- param.objInfo = {}
- param.objInfo['cusPhone'] = formData.cusPhone
- param.objInfo['cusName'] = formData.cusName
- param.objInfo['objectId'] = formData.cusId
- param.objInfo['addressFull'] = formData.addressFull
- param.cusName = formData.cusName
- param.cusPhone = formData.cusPhone
- param.addressFull = formData.addressFull
- if (this.data.formMode !== Constants.formMode.other) {
- param.orgId = formData.orgId ? formData.orgId : app.globalData.user.orgId
- param.orgName = formData.orgName ? formData.orgName : app.globalData.user.orgName
- param.staffId = formData.staffId ? formData.staffId : app.globalData.user.staffId
- param.staffName = formData.staffName ? formData.staffName : app.globalData.user.staffName
- param.objectId = formData.cusId
- } else {
- //编辑退款
- param.editFlag = true
- this.data.dataItem.forEach(res => {
- res.checked = true
- res.sumAmount = Number(res.amtRec).toFixed(2)
- })
- param.dataItem = this.data.dataItem
- }
- param.annexPaths = formData.annexPaths
- param.rpType = '收付款类型-收款'
- param.sumAmtRec = formData.sumAmtRec
- param.sumAmount = formData.sumAmtRec
- // 设定当前多业务部门业务员
- this.setData({
- orgStaffInfo: {
- staff: {
- text: param.staffName ? param.staffName : app.globalData.user.staffName,
- value: [param.staffId ? param.staffId : app.globalData.user.staffId]
- },
- org: {
- text: param.orgName ? param.orgName : app.globalData.user.orgName,
- value: [param.orgId ? param.orgId : app.globalData.user.orgId]
- },
- orgId: param.orgId ? param.orgId : app.globalData.user.orgId,
- staffId: param.staffId ? param.staffId : app.globalData.user.staffId,
- orgName: param.orgName,
- staffName: param.staffName,
- staffList: param.staffList,
- orgList: param.orgList,
- }
- })
- return JSON.stringify(param)
- },
- /**
- * @desc : 选择回调
- * @author : 于继渤
- * @date : 2024/1/26 11:46
- */
- chooseData(e) {
- let item = e.detail.data
- let code = e.detail.code
- let formData = JSON.parse(this.data.formData)
- if (code == "staffId") { //员工
- formData.staffId = item.data.id
- formData.staffName = item.data.name
- formData.orgId = item.data.orgId
- formData.orgName = item.data.orgName
- }
- if (code == "orgId") { //部门
- formData.orgId = item.data.id
- formData.orgName = item.data.name
- }
- //设置客户信息
- if (code == 'cusName') {
- formData.cusCode = item.cusCode
- formData.cusId = item.cusId
- formData.cusName = item.cusName
- formData.cusPhone = item.cusPhone
- formData.cusFromName = item.cusFromName
- formData.cusFrom = item.cusFrom
- formData.cusDebt = item.cusDebt
- //处理地址
- formData.address = {
- address: item.addressFull,
- addressFull: item.addressFull,
- addressArea: item.addressArea,
- addressGcj02: item.addressGcj02,
- addressName: item.addressName,
- }
- formData.addressArea = item.addressArea
- formData.addressFull = item.addressFull
- formData.addressGcj02 = item.addressGcj02
- formData.addressName = item.addressName
- formData.addressNo = item.addressNo
- //订单销售渠道 ,默认取的客户的渠道
- formData.salesChannel = item.channelId
- formData.channelId = item.channelId
- formData.channelName = item.channelName
- formData.contactPhone = item.contactPhone
- formData.contactPhone = item.contactPhone
- }
- ///设置主从业务员
- if (code == 'staff') {
- formData.staff = item.staffItem
- formData['staffId'] = item.staffMain.staffId
- formData['staffName'] = item.staffMain.staffName
- formData['staffList'] = item.staffList
- }
- ///设置主从业务部门
- if (code == 'org') {
- formData.org = item.orgItem
- formData['orgId'] = item.orgMain.orgId
- formData['orgName'] = item.orgMain.orgName
- formData['orgList'] = item.orgList
- }
- this.setData({
- formData: JSON.stringify(formData)
- })
- },
- /**
- * @desc : 编辑用
- * @date : 2024/2/1 15:49
- * @author : 于继渤
- */
- getRpForUpdate(id) {
- return this.excute(this.data.service, this.data.service.getRpForUpdate + '/' + id, {}).then(res => {
- if (res.data.code == 200) {
- let data = res.data.data.data
- data.customerId = data.cusId
- data.objInfo = {
- cusId: data.cusId,
- cusName: data.cusName,
- cusPhone: data.cusPhone,
- cusCode: data.cusCode
- }
- //处理地址
- data.address = {
- address: data.addressFull,
- addressFull: data.addressFull,
- addressArea: data.addressArea,
- addressGcj02: data.addressGcj02,
- addressName: data.addressName,
- }
- //处理顶部
- data['staff'] = {
- text: data.staffName,
- value: [data.staffId]
- }
- data['org'] = {
- text: data.orgName,
- value: [data.orgId]
- }
- data.orgList = [{
- orgId: data.orgId,
- orgName: data.orgName,
- ownerFlag: true,
- allocationRatio: 100,
- }]
- data.staffList = [{
- staffId: data.staffId,
- staffName: data.staffName,
- ownerFlag: true,
- allocationRatio: 100,
- }]
- this.setData({
- formData: JSON.stringify(data),
- dataItem: res.data.data.dataItem
- })
- // 获取当前客户的账款信息
- this.getAccount(data.objectId)
- this.changeNumberBlur()
- }
- });
- },
- /**
- * @desc : 获取当前客户的账款信息
- * @date : 2024/2/1 15:49
- * @author : 姜永辉
- */
- getAccount(id) {
- return this.excute(this.data.accountService, this.data.accountService.getAccount + id, {}).then(res => {
- if (res.data.code == 200) {
- let formData = JSON.parse(this.data.formData)
- if (res.data.data) {
- let data = res.data.data
- if (data!=null) {
- data.receivableResidue = data.receivableResidue ? Number(data.receivableResidue) : 0
- data.receiptResidue = data.receiptResidue ? Number(data.receiptResidue) : 0
- formData.cusDebt = Number(data.receivableResidue - data.receiptResidue) > 0 ? Number(data.receivableResidue - data.receiptResidue) : 0
-
- }else {
- formData.cusDebt = 0
- }
- } else {
- formData.cusDebt = 0
- }
- this.setData({
- formData: JSON.stringify(formData)
- })
- }
- });
- },
- /**
- * 生命周期函数--监听页面加载
- */
- loadInit() {
- let formData = JSON.parse(this.data.formData)
- formData['staff'] = {
- text: app.globalData.user.staffName,
- value: [app.globalData.user.staffId]
- }
- formData['org'] = {
- text: app.globalData.user.orgName,
- value: [app.globalData.user.orgId]
- }
- formData.staffName = app.globalData.user.staffName,
- formData.orgName = app.globalData.user.orgName,
- formData.orgId = app.globalData.user.orgId
- formData.orgList = [{
- orgId: app.globalData.user.orgId,
- orgName: app.globalData.user.orgName,
- ownerFlag: true,
- allocationRatio: 100,
- }]
- formData.staffId = app.globalData.user.staffId
- formData.staffList = [{
- staffId: app.globalData.user.staffId,
- staffName: app.globalData.user.staffName,
- ownerFlag: true,
- allocationRatio: 100,
- }]
- //编辑收款
- if (this.data.formMode == Constants.formMode.other) {
- wx.setNavigationBarTitle({
- title: '编辑客户收款',
- })
- this.getRpForUpdate(this.data.id)
- // 控制客户名称和电话不能修改
- let contentObj = this.data.contentObj
- contentObj.main.forEach(it=>{
- if(it.code == 'cusName' || it.code == 'cusPhone' || it.code == 'addressFull'|| it.code == 'addressNo'){
- it.readonly = true
- it.readonlyItem = true
- }
- })
- this.setData({
- contentObj:contentObj
- })
- console.log('contentObj',contentObj);
- }
- //销售订单跳转
- if (this.data.formType == Constants.formMode.add) {
- formData.cusCode = this.data.item.cusCode
- formData.cusId = this.data.item.cusId
- formData.cusName = this.data.item.cusName
- formData.cusPhone = this.data.item.cusPhone
- formData.cusFromName = this.data.item.cusFromName
- formData.cusFrom = this.data.item.cusFrom
- //处理地址
- formData.address = {
- address: this.data.item.addressFull,
- addressFull: this.data.item.addressFull,
- addressArea: this.data.item.addressArea,
- addressGcj02: this.data.item.addressGcj02,
- addressName: this.data.item.addressName,
- }
- formData.addressArea = this.data.item.addressArea
- formData.addressFull = this.data.item.addressFull
- formData.addressGcj02 = this.data.item.addressGcj02
- formData.addressName = this.data.item.addressName
- formData.addressNo = this.data.item.addressNo
- //订单销售渠道 ,默认取的客户的渠道
- formData.salesChannel = this.data.item.channelId
- formData.channelId = this.data.item.channelId
- formData.channelName = this.data.item.channelName
- formData.contactPhone = this.data.item.contactPhone
- formData.contactPhone = this.data.item.contactPhone
- // 获取当前客户的账款信息
- this.getAccount(formData.cusId)
- }
- if (this.data.formMode == "sourceCus") { //从客户列表跳转过来的
- let contentObj = this.data.contentObj
- contentObj = this.setContentObjReadonly(contentObj)
- this.setData({
- contentObj:contentObj
- })
- }
- this.setData({
- formData: JSON.stringify(formData)
- })
- },
- /**
- * 客户列表中 客户跟进,跟进任务和客户收款,跳转到新建界面都要把客户信息带过去,并且客户信息不能修改(bug 7605)
- * @desc : 设置form (ContentObj)哪些可以输入
- * @date : 2024/2/1 15:49
- * @author : 王英杰
- */
- setContentObjReadonly(Obj) {
- let contentObj = Obj
- if (this.data.formMode == "sourceCus") { //从客户列表跳转过来的
- let cusName_index = contentObj.main.findIndex(it => it.code == "cusName")
- let cusPhone_index = contentObj.main.findIndex(it => it.code == "cusPhone")
- let addressFull_index = contentObj.main.findIndex(it => it.code == "addressFull")
- let addressNo_index = contentObj.main.findIndex(it => it.code == "addressNo")
- if (cusName_index >= 0) {
- contentObj.main[cusName_index].readonly = true
- }
- if (cusPhone_index >= 0) {
- contentObj.main[cusPhone_index].readonly = true
- }
- if (addressFull_index >= 0) {
- contentObj.main[addressFull_index].readonly = true
- }
- if (addressNo_index >= 0) {
- contentObj.main[addressNo_index].readonly = true
- }
-
- }
- return contentObj
- },
- /**
- * @desc : 手机号离焦事件
- * @author : 于继渤
- * @date : 2024/1/26 11:46
- */
- changePhoneblur(e) {
- let formData = JSON.parse(this.data.formData)
- if (formData.cusPhone) {
- this.getCustomerData({
- cusPhone: formData.cusPhone
- })
- }
- },
- /**
- * @desc : 查询客户信息
- * @author : 于继渤
- * @date : 2024/1/23 9:16
- */
- getCustomerData(params) {
- return this.excute(this.data.customerService, this.data.customerService.selectByCondNoPage, params).then(res => {
- if (res.data.code == 200) {
- if (res.data.data.length > 0) {
- let formData = JSON.parse(this.data.formData)
- let item = res.data.data[0]
- formData.cusCode = item.cusCode
- formData.cusId = item.cusId
- formData.cusName = item.cusName
- // formData.cusPhone = item.cusPhone
- formData.cusFromName = item.cusFromName
- formData.cusFrom = item.cusFrom
- //处理地址
- formData.address = {
- address: item.addressFull,
- addressFull: item.addressFull,
- addressArea: item.addressArea,
- addressGcj02: item.addressGcj02,
- addressName: item.addressName,
- }
- formData.addressArea = item.addressArea
- formData.addressFull = item.addressFull
- formData.addressGcj02 = item.addressGcj02
- formData.addressName = item.addressName
- formData.addressNo = item.addressNo
- //订单销售渠道 ,默认取的部门的渠道
- // formData.salesChannel = item.channelId
- // formData.channelId = item.channelId
- // formData.channelName = item.channelName
- formData.contactPhone = item.contactPhone
- formData.contactPhone = item.contactPhone
- this.setData({
- formData: JSON.stringify(formData)
- })
- }
- }
- });
- },
- })
|