|
|
@@ -5,732 +5,734 @@ const app = getApp()
|
|
|
const config = require('@/config/config.js')
|
|
|
const Constants = require('@/utils/Constants');
|
|
|
Page({
|
|
|
- mixins: [mixins],
|
|
|
- /**
|
|
|
- * 页面的初始数据
|
|
|
- */
|
|
|
- data: {
|
|
|
- // 弹出按钮
|
|
|
- buttonList: [{
|
|
|
- name: 'merge',
|
|
|
- title: mixins.$t('save') //'保存'
|
|
|
- }],
|
|
|
- minDate: new Date().getTime(),
|
|
|
- contentList: [{
|
|
|
- code: 'need',
|
|
|
- title: mixins.$t('totalAmount'), //'合集金额',
|
|
|
- type: 'str'
|
|
|
- }, {
|
|
|
- code: 'amount',
|
|
|
- content: 0,
|
|
|
- type: 'number'
|
|
|
- }],
|
|
|
- btnFormData: null,
|
|
|
- popContent: [
|
|
|
- { code: 'pricePur', type: 'number', title: mixins.$t("pricePur"), }, {
|
|
|
- code: 'itemQty',
|
|
|
- type: 'step',
|
|
|
- title: mixins.$t('count'), //'数量',
|
|
|
- required: true,
|
|
|
- },
|
|
|
- { code: 'packageBox', type: 'packageBox', title: mixins.$t("packageBox"), },
|
|
|
- {
|
|
|
- code: 'skuSpec',
|
|
|
- title: mixins.$t('goodSpec'), //'规格',
|
|
|
- type: 'str',
|
|
|
- readonly: true,
|
|
|
- },
|
|
|
- {
|
|
|
- code: 'nonStdCode',
|
|
|
- title: mixins.$t('goodsBatch'), //'色号',
|
|
|
- type: 'str',
|
|
|
- required: true,
|
|
|
- tip: mixins.$t('tipPop'),
|
|
|
- },
|
|
|
- ],
|
|
|
+ mixins: [mixins],
|
|
|
+ /**
|
|
|
+ * 页面的初始数据
|
|
|
+ */
|
|
|
+ data: {
|
|
|
+ // 弹出按钮
|
|
|
+ buttonList: [{
|
|
|
+ name: 'merge',
|
|
|
+ title: mixins.$t('save') //'保存'
|
|
|
+ }],
|
|
|
+ minDate: new Date().getTime(),
|
|
|
+ contentList: [{
|
|
|
+ code: 'need',
|
|
|
+ title: mixins.$t('totalAmount'), //'合集金额',
|
|
|
+ type: 'str'
|
|
|
+ }, {
|
|
|
+ code: 'amount',
|
|
|
+ content: 0,
|
|
|
+ type: 'number'
|
|
|
+ }],
|
|
|
+ btnFormData: null,
|
|
|
+ popContent: [{
|
|
|
+ code: 'pricePur',
|
|
|
+ type: 'number',
|
|
|
+ title: mixins.$t("pricePur"),
|
|
|
+ }, {
|
|
|
+ code: 'itemQty',
|
|
|
+ type: 'step',
|
|
|
+ title: mixins.$t('count'), //'数量',
|
|
|
+ required: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ code: 'packageBox',
|
|
|
+ type: 'packageBox',
|
|
|
+ title: mixins.$t("packageBox"),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ code: 'skuSpec',
|
|
|
+ title: mixins.$t('goodSpec'), //'规格',
|
|
|
+ type: 'str',
|
|
|
+ readonly: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ code: 'nonStdCode',
|
|
|
+ title: mixins.$t('goodsBatch'), //'色号',
|
|
|
+ type: 'str',
|
|
|
+ required: true,
|
|
|
+ tip: mixins.$t('tipPop'),
|
|
|
+ },
|
|
|
+ ],
|
|
|
|
|
|
- cardList: [{
|
|
|
- name: 'wh'
|
|
|
- }, {
|
|
|
- name: 'relation'
|
|
|
- },
|
|
|
- {
|
|
|
- name: 'items',
|
|
|
- title: mixins.$t('goodsDetail'), //'商品明细',
|
|
|
- color: '#E4002B',
|
|
|
- controls: [{ card: 'relation', code: 'sourceNo' }],
|
|
|
- noWarehouseFlag: true,// 控制是否隐藏去库存按钮
|
|
|
- displayNum: 2
|
|
|
- }, {
|
|
|
- name: 'other',
|
|
|
- title: mixins.$t('otherInfo'), //'其他信息'
|
|
|
- }
|
|
|
- ],
|
|
|
- contentObj: {
|
|
|
- wh: [{
|
|
|
- code: 'supId',
|
|
|
- name: 'supName',
|
|
|
- title: mixins.$t('supplier'), //'供应商',
|
|
|
- type: 'choose',
|
|
|
- required: true,
|
|
|
- defaultSupplier: true,
|
|
|
- urlKey: 'chooseSupplier'
|
|
|
- }, {
|
|
|
- code: 'whId',
|
|
|
- name: 'whName',
|
|
|
- title: mixins.$t('eiWhName'), //'预计入库仓库',
|
|
|
- type: 'choose',
|
|
|
- required: true,
|
|
|
- urlKey: 'chooseWh'
|
|
|
- }, {
|
|
|
- code: 'pickupDate',
|
|
|
- name: 'pickupDate',
|
|
|
- type: 'date',
|
|
|
- required: true,
|
|
|
- title: mixins.$t('erDate'), //'预计入库日期',
|
|
|
- },],
|
|
|
- relation: [{
|
|
|
- code: 'sourceNo',
|
|
|
- name: 'fromNo',
|
|
|
- type: 'choose',
|
|
|
- title: mixins.$t('sourceOrder'), //'关联源单'
|
|
|
- controlChooseFlag: true,
|
|
|
- urlKey: 'chooseSaleOrder'
|
|
|
- }],
|
|
|
- items: [],
|
|
|
+ cardList: [{
|
|
|
+ name: 'wh'
|
|
|
+ }, {
|
|
|
+ name: 'relation'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'items',
|
|
|
+ title: mixins.$t('goodsDetail'), //'商品明细',
|
|
|
+ color: '#E4002B',
|
|
|
+ controls: [{
|
|
|
+ card: 'relation',
|
|
|
+ code: 'sourceNo'
|
|
|
+ }],
|
|
|
+ noWarehouseFlag: true, // 控制是否隐藏去库存按钮
|
|
|
+ displayNum: 2
|
|
|
+ }, {
|
|
|
+ name: 'other',
|
|
|
+ title: mixins.$t('otherInfo'), //'其他信息'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ contentObj: {
|
|
|
+ wh: [{
|
|
|
+ code: 'supId',
|
|
|
+ name: 'supName',
|
|
|
+ title: mixins.$t('supplier'), //'供应商',
|
|
|
+ type: 'choose',
|
|
|
+ required: true,
|
|
|
+ defaultSupplier: true,
|
|
|
+ urlKey: 'chooseSupplier'
|
|
|
+ }, {
|
|
|
+ code: 'whId',
|
|
|
+ name: 'whName',
|
|
|
+ title: mixins.$t('eiWhName'), //'预计入库仓库',
|
|
|
+ type: 'choose',
|
|
|
+ required: true,
|
|
|
+ urlKey: 'chooseWh'
|
|
|
+ }, {
|
|
|
+ code: 'pickupDate',
|
|
|
+ name: 'pickupDate',
|
|
|
+ type: 'date',
|
|
|
+ required: true,
|
|
|
+ title: mixins.$t('erDate'), //'预计入库日期',
|
|
|
+ }, ],
|
|
|
+ relation: [{
|
|
|
+ code: 'sourceNo',
|
|
|
+ name: 'fromNo',
|
|
|
+ type: 'choose',
|
|
|
+ title: mixins.$t('sourceOrder'), //'关联源单'
|
|
|
+ controlChooseFlag: true,
|
|
|
+ urlKey: 'chooseSaleOrder'
|
|
|
+ }],
|
|
|
+ items: [],
|
|
|
|
|
|
- other: [{
|
|
|
- code: 'remarks',
|
|
|
- type: 'textarea',
|
|
|
- title: mixins.$t('remarks'), //'备注',
|
|
|
- readonly: false
|
|
|
- }, {
|
|
|
- code: 'file',
|
|
|
- type: 'uploader',
|
|
|
- title: mixins.$t('uploader'), //'附件'
|
|
|
- }]
|
|
|
- },
|
|
|
- table: Constants.tables.purchase,
|
|
|
- // 路由
|
|
|
- routeObjName: 'purchase',
|
|
|
- // 系统参数
|
|
|
- flgAutoHandle: app.globalData.setting[Constants.settingCode.IVT001] == "true" ? true : false,
|
|
|
+ other: [{
|
|
|
+ code: 'remarks',
|
|
|
+ type: 'textarea',
|
|
|
+ title: mixins.$t('remarks'), //'备注',
|
|
|
+ readonly: false
|
|
|
+ }, {
|
|
|
+ code: 'file',
|
|
|
+ type: 'uploader',
|
|
|
+ title: mixins.$t('uploader'), //'附件'
|
|
|
+ }]
|
|
|
},
|
|
|
- /**
|
|
|
- * @desc :处理保存后续
|
|
|
- * @date : 2024/2/1 15:49
|
|
|
- * @author : 王英杰
|
|
|
- */
|
|
|
- handleData() {
|
|
|
- let cardList_ = this.data.cardList
|
|
|
- let contentList_ = this.data.contentList
|
|
|
- cardList_.forEach(card => { //商品明细右下角 合计
|
|
|
- if (card.name === 'items') {
|
|
|
- card.itemAmt = 0
|
|
|
- card.itemQty = 0
|
|
|
- }
|
|
|
- })
|
|
|
+ table: Constants.tables.purchase,
|
|
|
+ // 路由
|
|
|
+ routeObjName: 'purchase',
|
|
|
+ // 系统参数
|
|
|
+ flgAutoHandle: app.globalData.setting[Constants.settingCode.IVT001] == "true" ? true : false,
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc :处理保存后续
|
|
|
+ * @date : 2024/2/1 15:49
|
|
|
+ * @author : 王英杰
|
|
|
+ */
|
|
|
+ handleData() {
|
|
|
+ let cardList_ = this.data.cardList
|
|
|
+ let contentList_ = this.data.contentList
|
|
|
+ cardList_.forEach(card => { //商品明细右下角 合计
|
|
|
+ if (card.name === 'items') {
|
|
|
+ card.itemAmt = 0
|
|
|
+ card.itemQty = 0
|
|
|
+ }
|
|
|
+ })
|
|
|
|
|
|
- contentList_.forEach(card => { // 按钮上 dk-save-botton 上的商品明细合计
|
|
|
- if (card.code === 'amount') {
|
|
|
- card.content = 0
|
|
|
- }
|
|
|
- })
|
|
|
- this.setData({
|
|
|
- cardList: cardList_,
|
|
|
- contentList: contentList_
|
|
|
- })
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 绑定数据
|
|
|
- * @author : 王英杰
|
|
|
- * @date : 2024年3月12日
|
|
|
- */
|
|
|
- chooseData(e) {
|
|
|
- let formData = JSON.parse(this.data.formData)
|
|
|
+ contentList_.forEach(card => { // 按钮上 dk-save-botton 上的商品明细合计
|
|
|
+ if (card.code === 'amount') {
|
|
|
+ card.content = 0
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.setData({
|
|
|
+ cardList: cardList_,
|
|
|
+ contentList: contentList_
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 绑定数据
|
|
|
+ * @author : 王英杰
|
|
|
+ * @date : 2024年3月12日
|
|
|
+ */
|
|
|
+ chooseData(e) {
|
|
|
+ let formData = JSON.parse(this.data.formData)
|
|
|
|
|
|
- let code = e.detail.code
|
|
|
- let data = e.detail.data.data
|
|
|
+ let code = e.detail.code
|
|
|
+ let data = e.detail.data.data
|
|
|
|
|
|
- if (code == "supId") { //供应商
|
|
|
- formData.supId = data.id
|
|
|
- formData.supName = data.name
|
|
|
- }
|
|
|
- if (code == "staffId") { //员工
|
|
|
- formData.staffId = data.id
|
|
|
- formData.staffName = data.name
|
|
|
- }
|
|
|
- if (code == "orgId") { //员工
|
|
|
- formData.orgId = data.id
|
|
|
- formData.orgName = data.name
|
|
|
- }
|
|
|
- if (code == "whId") { //仓库
|
|
|
- formData.whId = data.id
|
|
|
- formData.whName = data.name
|
|
|
- }
|
|
|
- if (code == "sourceNo") { //来源单
|
|
|
- this.convertGoods(data.choooseItemList)
|
|
|
- // 刷新商品明细 显示 查看更多
|
|
|
- let card = this.data.cardList.filter(it => it.name == 'items');
|
|
|
- this.selectComponent('#' + this.data.formName).handleContentObj(card[0])
|
|
|
- return
|
|
|
- }
|
|
|
+ if (code == "supId") { //供应商
|
|
|
+ formData.supId = data.id
|
|
|
+ formData.supName = data.name
|
|
|
+ }
|
|
|
+ if (code == "staffId") { //员工
|
|
|
+ formData.staffId = data.id
|
|
|
+ formData.staffName = data.name
|
|
|
+ }
|
|
|
+ if (code == "orgId") { //员工
|
|
|
+ formData.orgId = data.id
|
|
|
+ formData.orgName = data.name
|
|
|
+ }
|
|
|
+ if (code == "whId") { //仓库
|
|
|
+ formData.whId = data.id
|
|
|
+ formData.whName = data.name
|
|
|
+ }
|
|
|
+ if (code == "sourceNo") { //来源单
|
|
|
+ this.convertGoods(data.choooseItemList)
|
|
|
+ // 刷新商品明细 显示 查看更多
|
|
|
+ let card = this.data.cardList.filter(it => it.name == 'items');
|
|
|
+ this.selectComponent('#' + this.data.formName).handleContentObj(card[0])
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
- this.setData({
|
|
|
- formData: JSON.stringify(formData)
|
|
|
- })
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 转换销售单 过来的选品数据 对应接口数据
|
|
|
- * @author : 王英杰
|
|
|
- * @date : 2024年3月12日
|
|
|
- */
|
|
|
- convertGoods(choooseItemList) {
|
|
|
- let formData = JSON.parse(this.data.formData)
|
|
|
- // 提取purNo字段为数组,并去重
|
|
|
- const orderNoArray = [...new Set(choooseItemList.map(item => item.orderNo))];
|
|
|
- const orderIdArray = [...new Set(choooseItemList.map(item => item.orderId))];
|
|
|
- // 将数组元素转换为逗号分隔的字符串
|
|
|
- formData.fromNos = this.isArrayWithSingleNull(orderNoArray) ? [] : orderNoArray.join(',').split(',') //来源单号
|
|
|
- formData.fromIds = this.isArrayWithSingleNull(orderIdArray) ? [] : orderIdArray.join(',').split(',') //来源单id
|
|
|
- formData.fromNo = orderNoArray.join(',');
|
|
|
- let cardList_ = this.data.cardList
|
|
|
- cardList_.forEach(card => { //循环出商品总共价格
|
|
|
- if (card.name === 'items') {
|
|
|
- card.itemAmt = choooseItemList.sum("itemAmt") //售价金额合计
|
|
|
- }
|
|
|
- })
|
|
|
- let contentList_ = this.data.contentList
|
|
|
- contentList_.forEach(card => { //循环出商品总共价格
|
|
|
- if (card.code === 'amount') {
|
|
|
- card.content = choooseItemList.sum("itemAmt")
|
|
|
- }
|
|
|
- })
|
|
|
+ this.setData({
|
|
|
+ formData: JSON.stringify(formData)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 转换销售单 过来的选品数据 对应接口数据
|
|
|
+ * @author : 王英杰
|
|
|
+ * @date : 2024年3月12日
|
|
|
+ */
|
|
|
+ convertGoods(choooseItemList) {
|
|
|
+ let formData = JSON.parse(this.data.formData)
|
|
|
+ // 提取purNo字段为数组,并去重
|
|
|
+ const orderNoArray = [...new Set(choooseItemList.map(item => item.orderNo))];
|
|
|
+ const orderIdArray = [...new Set(choooseItemList.map(item => item.orderId))];
|
|
|
+ // 将数组元素转换为逗号分隔的字符串
|
|
|
+ formData.fromNos = this.isArrayWithSingleNull(orderNoArray) ? [] : orderNoArray.join(',').split(',') //来源单号
|
|
|
+ formData.fromIds = this.isArrayWithSingleNull(orderIdArray) ? [] : orderIdArray.join(',').split(',') //来源单id
|
|
|
+ formData.fromNo = orderNoArray.join(',');
|
|
|
+ let cardList_ = this.data.cardList
|
|
|
+ cardList_.forEach(card => { //循环出商品总共价格
|
|
|
+ if (card.name === 'items') {
|
|
|
+ card.itemAmt = choooseItemList.sum("itemAmt") //售价金额合计
|
|
|
+ }
|
|
|
+ })
|
|
|
+ let contentList_ = this.data.contentList
|
|
|
+ contentList_.forEach(card => { //循环出商品总共价格
|
|
|
+ if (card.code === 'amount') {
|
|
|
+ card.content = choooseItemList.sum("itemAmt")
|
|
|
+ }
|
|
|
+ })
|
|
|
|
|
|
- choooseItemList.forEach(element => {
|
|
|
- element.chooseFlg = "biu" //辨别选品标识
|
|
|
- element.priceStd = element.priceStandard
|
|
|
- element.fromId = element.orderId
|
|
|
- element.fromItemId = element.itemId
|
|
|
- element.pricePur = element.pricePur ? element.pricePur : element.pricePurchase
|
|
|
- element.amtStd = Number(element.priceStd * element.itemQty) //标价金额
|
|
|
- element.priceDiscount = (Number(element.pricePurchase) / Number(element.priceStandard)) * 100;
|
|
|
- element.nonStdCode = element.nonStdCode ? element.nonStdCode : '' // 色号 批次号
|
|
|
- if (element.flgSubUnit) {
|
|
|
- element.calculationFormula = element.packBox + element.unitName + '= 1' + element.subUnitName
|
|
|
- element.packageBox = element['box'] + element.subUnitName + element['piece'] + element.unitName
|
|
|
- }
|
|
|
- });
|
|
|
- formData.goodsList = choooseItemList
|
|
|
- this.setData({
|
|
|
- formData: JSON.stringify(formData),
|
|
|
- cardList: cardList_,
|
|
|
- contentList: contentList_
|
|
|
- })
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 选择框右边删除 回调
|
|
|
- * @date : 2024/2/1 15:49
|
|
|
- * @author : 王英杰
|
|
|
- */
|
|
|
- clear(e) {
|
|
|
- let code = e.detail.code
|
|
|
- let formData = JSON.parse(this.data.formData)
|
|
|
- if (code == "sourceNo") { //来源单号
|
|
|
- let contentList_ = this.data.contentList
|
|
|
- let cardList = this.data.cardList
|
|
|
- formData.goodsList = []
|
|
|
- contentList_.forEach(card => {
|
|
|
- if (card.code === 'amount') {
|
|
|
- card.content = 0
|
|
|
- }
|
|
|
- })
|
|
|
- cardList.forEach(card => {
|
|
|
- if (card.name === 'items') {
|
|
|
- card.itemAmt = 0
|
|
|
- }
|
|
|
- })
|
|
|
- this.setData({
|
|
|
- contentList: contentList_,
|
|
|
- cardList,
|
|
|
- })
|
|
|
+ choooseItemList.forEach(element => {
|
|
|
+ element.chooseFlg = "biu" //辨别选品标识
|
|
|
+ element.priceStd = element.priceStandard
|
|
|
+ element.fromId = element.orderId
|
|
|
+ element.fromItemId = element.itemId
|
|
|
+ element.pricePur = element.pricePur ? element.pricePur : element.pricePurchase
|
|
|
+ element.amtStd = Number(element.priceStd * element.itemQty) //标价金额
|
|
|
+ element.priceDiscount = (Number(element.pricePurchase) / Number(element.priceStandard)) * 100;
|
|
|
+ element.nonStdCode = element.nonStdCode ? element.nonStdCode : '' // 色号 批次号
|
|
|
+ if (element.flgSubUnit) {
|
|
|
+ element.calculationFormula = element.packBox + element.unitName + '= 1' + element.subUnitName
|
|
|
+ element.packageBox = element['box'] + element.subUnitName + element['piece'] + element.unitName
|
|
|
+ }
|
|
|
+ });
|
|
|
+ formData.goodsList = choooseItemList
|
|
|
+ this.setData({
|
|
|
+ formData: JSON.stringify(formData),
|
|
|
+ cardList: cardList_,
|
|
|
+ contentList: contentList_
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 选择框右边删除 回调
|
|
|
+ * @date : 2024/2/1 15:49
|
|
|
+ * @author : 王英杰
|
|
|
+ */
|
|
|
+ clear(e) {
|
|
|
+ let code = e.detail.code
|
|
|
+ let formData = JSON.parse(this.data.formData)
|
|
|
+ if (code == "sourceNo") { //来源单号
|
|
|
+ let contentList_ = this.data.contentList
|
|
|
+ let cardList = this.data.cardList
|
|
|
+ formData.goodsList = []
|
|
|
+ contentList_.forEach(card => {
|
|
|
+ if (card.code === 'amount') {
|
|
|
+ card.content = 0
|
|
|
}
|
|
|
- this.setData({
|
|
|
- formData: JSON.stringify(formData)
|
|
|
- })
|
|
|
-
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 判断出 数组 arr 是否是 [null] 的数据
|
|
|
- * @date : 2024/2/1 15:49
|
|
|
- * @author : 王英杰
|
|
|
- */
|
|
|
- isArrayWithSingleNull(arr) {
|
|
|
- // 检查是否是一个数组
|
|
|
- if (!Array.isArray(arr)) {
|
|
|
- return false;
|
|
|
+ })
|
|
|
+ cardList.forEach(card => {
|
|
|
+ if (card.name === 'items') {
|
|
|
+ card.itemAmt = 0
|
|
|
}
|
|
|
+ })
|
|
|
+ this.setData({
|
|
|
+ contentList: contentList_,
|
|
|
+ cardList,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.setData({
|
|
|
+ formData: JSON.stringify(formData)
|
|
|
+ })
|
|
|
|
|
|
- // 检查数组长度是否为1
|
|
|
- if (arr.length !== 1) {
|
|
|
- return false;
|
|
|
- }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 判断出 数组 arr 是否是 [null] 的数据
|
|
|
+ * @date : 2024/2/1 15:49
|
|
|
+ * @author : 王英杰
|
|
|
+ */
|
|
|
+ isArrayWithSingleNull(arr) {
|
|
|
+ // 检查是否是一个数组
|
|
|
+ if (!Array.isArray(arr)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
- // 检查数组中的元素是否为null
|
|
|
- return arr[0] === null;
|
|
|
- },
|
|
|
- openChoosedItemInfo(e) {
|
|
|
- let popContent_ = this.data.popContent
|
|
|
- popContent_.forEach(card => { //
|
|
|
- if (card.code === 'itemQty') {
|
|
|
- card.max = 1
|
|
|
- }
|
|
|
- })
|
|
|
+ // 检查数组长度是否为1
|
|
|
+ if (arr.length !== 1) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 检查数组中的元素是否为null
|
|
|
+ return arr[0] === null;
|
|
|
+ },
|
|
|
+ openChoosedItemInfo(e) {
|
|
|
+ let popContent_ = this.data.popContent
|
|
|
+ popContent_.forEach(card => { //
|
|
|
+ if (card.code === 'itemQty') {
|
|
|
+ card.max = 1
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.setData({
|
|
|
+ popContent: popContent_,
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 2024-04-28类型转成时间戳
|
|
|
+ * @date : 2024/2/1 15:49
|
|
|
+ * @author : 王英杰
|
|
|
+ */
|
|
|
+ convertDateToMillisecondsTimestamp(dateString) {
|
|
|
+ // 创建Date对象
|
|
|
+ const date = new Date(`${dateString}T00:00:00Z`); // 假设dateString是YYYY-MM-DD格式,并添加T00:00:00Z使其成为ISO 8601格式
|
|
|
+ // 获取毫秒级时间戳
|
|
|
+ const timestamp = date.getTime();
|
|
|
+ return timestamp;
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 给表单赋值
|
|
|
+ * @date : 2024/2/1 15:49
|
|
|
+ * @author : 王英杰
|
|
|
+ */
|
|
|
+ setValuesByEdit(data) {
|
|
|
+ if (!data.flgAutoHandle) {
|
|
|
+ this.setData({
|
|
|
+ contentList: [{
|
|
|
+ code: 'need',
|
|
|
+ title: mixins.$t('totalAmount'), //'合集金额',
|
|
|
+ type: 'str'
|
|
|
+ }, {
|
|
|
+ code: 'amount',
|
|
|
+ content: 0,
|
|
|
+ type: 'number'
|
|
|
+ }],
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ if (this.data.gradeCode == Constants.gradeCode.STD) {
|
|
|
this.setData({
|
|
|
- popContent: popContent_,
|
|
|
+ contentList: [{
|
|
|
+ code: 'need',
|
|
|
+ title: mixins.$t('totalAmount'), //'合集金额',
|
|
|
+ type: 'str'
|
|
|
+ }, {
|
|
|
+ code: 'amount',
|
|
|
+ content: 0,
|
|
|
+ type: 'number'
|
|
|
+ }],
|
|
|
})
|
|
|
- },
|
|
|
- /**
|
|
|
-* @desc : 2024-04-28类型转成时间戳
|
|
|
-* @date : 2024/2/1 15:49
|
|
|
-* @author : 王英杰
|
|
|
-*/
|
|
|
- convertDateToMillisecondsTimestamp(dateString) {
|
|
|
- // 创建Date对象
|
|
|
- const date = new Date(`${dateString}T00:00:00Z`); // 假设dateString是YYYY-MM-DD格式,并添加T00:00:00Z使其成为ISO 8601格式
|
|
|
- // 获取毫秒级时间戳
|
|
|
- const timestamp = date.getTime();
|
|
|
- return timestamp;
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 给表单赋值
|
|
|
- * @date : 2024/2/1 15:49
|
|
|
- * @author : 王英杰
|
|
|
- */
|
|
|
- setValuesByEdit(data) {
|
|
|
- if (!data.flgAutoHandle) {
|
|
|
- this.setData({
|
|
|
- contentList:
|
|
|
- [
|
|
|
- {
|
|
|
- code: 'need',
|
|
|
- title: mixins.$t('totalAmount'), //'合集金额',
|
|
|
- type: 'str'
|
|
|
- }, {
|
|
|
- code: 'amount',
|
|
|
- content: 0,
|
|
|
- type: 'number'
|
|
|
- }],
|
|
|
- })
|
|
|
- } else {
|
|
|
- if (this.data.gradeCode == Constants.gradeCode.STD) {
|
|
|
- this.setData({
|
|
|
- contentList:
|
|
|
- [
|
|
|
- {
|
|
|
- code: 'need',
|
|
|
- title: mixins.$t('totalAmount'), //'合集金额',
|
|
|
- type: 'str'
|
|
|
- }, {
|
|
|
- code: 'amount',
|
|
|
- content: 0,
|
|
|
- type: 'number'
|
|
|
- }],
|
|
|
- })
|
|
|
- } else {
|
|
|
- this.setData({
|
|
|
- contentList:
|
|
|
- [
|
|
|
- {
|
|
|
- code: 'flag',
|
|
|
- title: mixins.$t("purInBoundFlag"),
|
|
|
- type: 'checkbox'
|
|
|
- },
|
|
|
- {
|
|
|
- code: 'need',
|
|
|
- title: mixins.$t('totalAmount'), //'合集金额',
|
|
|
- type: 'str'
|
|
|
- }, {
|
|
|
- code: 'amount',
|
|
|
- content: 0,
|
|
|
- type: 'number'
|
|
|
- }],
|
|
|
- btnFormData: JSON.stringify({
|
|
|
- flag: data.inboundProcessingFlag
|
|
|
- })
|
|
|
- })
|
|
|
+ } else {
|
|
|
+ this.setData({
|
|
|
+ contentList: [{
|
|
|
+ code: 'flag',
|
|
|
+ title: mixins.$t("purInBoundFlag"),
|
|
|
+ type: 'checkbox'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ code: 'need',
|
|
|
+ title: mixins.$t('totalAmount'), //'合集金额',
|
|
|
+ type: 'str'
|
|
|
+ }, {
|
|
|
+ code: 'amount',
|
|
|
+ content: 0,
|
|
|
+ type: 'number'
|
|
|
}
|
|
|
- }
|
|
|
+ ],
|
|
|
+ btnFormData: JSON.stringify({
|
|
|
+ flag: data.inboundProcessingFlag
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- data.goodsList = data.purchaseItemResponseList
|
|
|
- // 提取purNo字段为数组,并去重
|
|
|
- const orderNoArray = [...new Set(data.goodsList.map(item => item.orderNo))];
|
|
|
- const orderIdArray = [...new Set(data.goodsList.map(item => item.orderId))];
|
|
|
- // 将数组元素转换为逗号分隔的字符串
|
|
|
+ data.goodsList = data.purchaseItemResponseList
|
|
|
+ // 提取purNo字段为数组,并去重
|
|
|
+ const orderNoArray = [...new Set(data.goodsList.map(item => item.orderNo))];
|
|
|
+ const orderIdArray = [...new Set(data.goodsList.map(item => item.orderId))];
|
|
|
+ // 将数组元素转换为逗号分隔的字符串
|
|
|
|
|
|
- data.fromNos = this.isArrayWithSingleNull(orderNoArray) ? [] : orderNoArray.join(',').split(',') //来源单号
|
|
|
- data.fromIds = this.isArrayWithSingleNull(orderIdArray) ? [] : orderIdArray.join(',').split(',') //来源单id
|
|
|
- data.fromNo = orderNoArray.join(',');
|
|
|
- data.goodsList.forEach(element => {
|
|
|
- element.chooseFlg = "biu" //辨别选品标识
|
|
|
- element.priceStd = element.priceStandard
|
|
|
- element.pricePur = element.pricePur ? element.pricePur : element.pricePurchase
|
|
|
- element.amtStd = Number(element.priceStd * element.itemQty) //标价金额
|
|
|
- element.priceDiscount = (Number(element.pricePur) / Number(element.priceStandard)) * 100;
|
|
|
- element['itemQty_min'] = Number(element.intoingQty + element.intoQty)
|
|
|
- if (element.intoingQty > 0 || element.intoQty > 0) {
|
|
|
- element.deleteFlag = false
|
|
|
- element.message = '商品已转入库不能删除'
|
|
|
- }
|
|
|
- if (element.skuImages && element.skuImages.length > 0) { //处理图片
|
|
|
- element.skuImages.forEach(item => {
|
|
|
- item.url = config.image_url + item.path
|
|
|
- });
|
|
|
- element.imagesUrl = element.skuImages[0].url
|
|
|
- }
|
|
|
- if (element.flgSubUnit) {
|
|
|
- element.calculationFormula = element.packBox + element.unitName + '= 1' + element.subUnitName
|
|
|
- element.packageBox = element['box'] + element.subUnitName + element['piece'] + element.unitName
|
|
|
- }
|
|
|
- element.sumPrice = element.pricePur * element.itemQty
|
|
|
+ data.fromNos = this.isArrayWithSingleNull(orderNoArray) ? [] : orderNoArray.join(',').split(',') //来源单号
|
|
|
+ data.fromIds = this.isArrayWithSingleNull(orderIdArray) ? [] : orderIdArray.join(',').split(',') //来源单id
|
|
|
+ data.fromNo = orderNoArray.join(',');
|
|
|
+ data.goodsList.forEach(element => {
|
|
|
+ element.chooseFlg = "biu" //辨别选品标识
|
|
|
+ element.priceStd = element.priceStandard
|
|
|
+ element.pricePur = element.pricePur ? element.pricePur : element.pricePurchase
|
|
|
+ element.amtStd = Number(element.priceStd * element.itemQty) //标价金额
|
|
|
+ element.priceDiscount = (Number(element.pricePur) / Number(element.priceStandard)) * 100;
|
|
|
+ if (this.data.gradeCode != Constants.gradeCode.STD) {
|
|
|
+ element['itemQty_min'] = Number(element.intoingQty + element.intoQty)
|
|
|
+ }
|
|
|
+ if (element.intoingQty > 0 || element.intoQty > 0) {
|
|
|
+ element.deleteFlag = false
|
|
|
+ element.message = '商品已转入库不能删除'
|
|
|
+ }
|
|
|
+ if (element.skuImages && element.skuImages.length > 0) { //处理图片
|
|
|
+ element.skuImages.forEach(item => {
|
|
|
+ item.url = config.image_url + item.path
|
|
|
});
|
|
|
- data.supName = data.supplierName
|
|
|
- let cardList_ = this.data.cardList
|
|
|
- let contentList_ = this.data.contentList
|
|
|
- let popContent_ = this.data.popContent
|
|
|
- cardList_.forEach(card => { //商品明细右下角 合计
|
|
|
- if (card.name === 'items') {
|
|
|
- card.itemAmt = data.goodsList.sum("itemAmt")
|
|
|
- card.itemQty = data.goodsList.sum("itemQty")
|
|
|
- }
|
|
|
- })
|
|
|
- contentList_.forEach(card => { // 按钮上 dk-save-botton 上的商品明细合计
|
|
|
- if (card.code === 'amount') {
|
|
|
- card.content = data.goodsList.sum("itemAmt")
|
|
|
- }
|
|
|
- })
|
|
|
+ element.imagesUrl = element.skuImages[0].url
|
|
|
+ }
|
|
|
+ if (element.flgSubUnit) {
|
|
|
+ element.calculationFormula = element.packBox + element.unitName + '= 1' + element.subUnitName
|
|
|
+ element.packageBox = element['box'] + element.subUnitName + element['piece'] + element.unitName
|
|
|
+ }
|
|
|
+ element.sumPrice = element.pricePur * element.itemQty
|
|
|
+ });
|
|
|
+ data.supName = data.supplierName
|
|
|
+ let cardList_ = this.data.cardList
|
|
|
+ let contentList_ = this.data.contentList
|
|
|
+ let popContent_ = this.data.popContent
|
|
|
+ cardList_.forEach(card => { //商品明细右下角 合计
|
|
|
+ if (card.name === 'items') {
|
|
|
+ card.itemAmt = data.goodsList.sum("itemAmt")
|
|
|
+ card.itemQty = data.goodsList.sum("itemQty")
|
|
|
+ }
|
|
|
+ })
|
|
|
+ contentList_.forEach(card => { // 按钮上 dk-save-botton 上的商品明细合计
|
|
|
+ if (card.code === 'amount') {
|
|
|
+ card.content = data.goodsList.sum("itemAmt")
|
|
|
+ }
|
|
|
+ })
|
|
|
|
|
|
- let dataTime = this.convertDateToMillisecondsTimestamp(data.pickupDate)
|
|
|
- this.setData({
|
|
|
- dataTime: dataTime,
|
|
|
- item: data,
|
|
|
- contentList: contentList_,
|
|
|
- cardList: cardList_,
|
|
|
- popContent: popContent_,
|
|
|
- formData: JSON.stringify(data)
|
|
|
- })
|
|
|
- // 刷新商品明细 显示 查看更多
|
|
|
- let card = this.data.cardList.filter(it => it.name == 'items');
|
|
|
- this.selectComponent('#' + this.data.formName).handleContentObj(card[0])
|
|
|
- },
|
|
|
+ let dataTime = this.convertDateToMillisecondsTimestamp(data.pickupDate)
|
|
|
+ this.setData({
|
|
|
+ dataTime: dataTime,
|
|
|
+ item: data,
|
|
|
+ contentList: contentList_,
|
|
|
+ cardList: cardList_,
|
|
|
+ popContent: popContent_,
|
|
|
+ formData: JSON.stringify(data)
|
|
|
+ })
|
|
|
+ // 刷新商品明细 显示 查看更多
|
|
|
+ let card = this.data.cardList.filter(it => it.name == 'items');
|
|
|
+ this.selectComponent('#' + this.data.formName).handleContentObj(card[0])
|
|
|
+ },
|
|
|
|
|
|
|
|
|
- /**
|
|
|
- * @desc : 外露设置产品方法
|
|
|
- * @date : 2024/2/1 15:49
|
|
|
- * @author : 王英杰
|
|
|
- */
|
|
|
- setGoods(e) {
|
|
|
- let contentList_ = this.data.contentList
|
|
|
- let cardList = this.data.cardList
|
|
|
- let formData = JSON.parse(this.data.formData)
|
|
|
- let totalAmout = Number(0)
|
|
|
- // 各个明细的金额数量
|
|
|
- formData.goodsList.forEach(element => { //循环出商品总共价格
|
|
|
- element.priceStd = element.priceStandard
|
|
|
- element.pricePur = element.pricePur ? element.pricePur : element.pricePurchase
|
|
|
- element.itemAmt = element.pricePur * element.itemQty
|
|
|
- element.amtStd = element.priceStd * element.itemQty
|
|
|
- element.priceDiscount = (Number(element.pricePur) / Number(element.priceStandard)) * 100;
|
|
|
- totalAmout += Number(element.pricePur * element.itemQty)
|
|
|
- element.packageBox = element['box'] + element.subUnitName + element['piece'] + element.unitName
|
|
|
- element.sumPricePur = element.pricePur * element.itemQty
|
|
|
- element.sumPrice = element.pricePur * element.itemQty
|
|
|
- })
|
|
|
+ /**
|
|
|
+ * @desc : 外露设置产品方法
|
|
|
+ * @date : 2024/2/1 15:49
|
|
|
+ * @author : 王英杰
|
|
|
+ */
|
|
|
+ setGoods(e) {
|
|
|
+ let contentList_ = this.data.contentList
|
|
|
+ let cardList = this.data.cardList
|
|
|
+ let formData = JSON.parse(this.data.formData)
|
|
|
+ let totalAmout = Number(0)
|
|
|
+ // 各个明细的金额数量
|
|
|
+ formData.goodsList.forEach(element => { //循环出商品总共价格
|
|
|
+ element.priceStd = element.priceStandard
|
|
|
+ element.pricePur = element.pricePur ? element.pricePur : element.pricePurchase
|
|
|
+ element.itemAmt = element.pricePur * element.itemQty
|
|
|
+ element.amtStd = element.priceStd * element.itemQty
|
|
|
+ element.priceDiscount = (Number(element.pricePur) / Number(element.priceStandard)) * 100;
|
|
|
+ totalAmout += Number(element.pricePur * element.itemQty)
|
|
|
+ element.packageBox = element['box'] + element.subUnitName + element['piece'] + element.unitName
|
|
|
+ element.sumPricePur = element.pricePur * element.itemQty
|
|
|
+ element.sumPrice = element.pricePur * element.itemQty
|
|
|
+ })
|
|
|
|
|
|
- // 左下角的合计金额
|
|
|
- contentList_.forEach(card => {
|
|
|
- if (card.code === 'amount') {
|
|
|
- card.content = totalAmout
|
|
|
- }
|
|
|
- })
|
|
|
- // 明细的合计金额
|
|
|
- cardList.forEach(card => { //循环出商品总共价格
|
|
|
- if (card.name === 'items') {
|
|
|
- //合计金额
|
|
|
- card.itemAmt = totalAmout
|
|
|
- card.itemQty = formData.goodsList.sum("itemQty")
|
|
|
- }
|
|
|
- })
|
|
|
- this.setData({
|
|
|
- contentList: contentList_,
|
|
|
- cardList,
|
|
|
- formData: JSON.stringify(formData)
|
|
|
- })
|
|
|
- },
|
|
|
+ // 左下角的合计金额
|
|
|
+ contentList_.forEach(card => {
|
|
|
+ if (card.code === 'amount') {
|
|
|
+ card.content = totalAmout
|
|
|
+ }
|
|
|
+ })
|
|
|
+ // 明细的合计金额
|
|
|
+ cardList.forEach(card => { //循环出商品总共价格
|
|
|
+ if (card.name === 'items') {
|
|
|
+ //合计金额
|
|
|
+ card.itemAmt = totalAmout
|
|
|
+ card.itemQty = formData.goodsList.sum("itemQty")
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.setData({
|
|
|
+ contentList: contentList_,
|
|
|
+ cardList,
|
|
|
+ formData: JSON.stringify(formData)
|
|
|
+ })
|
|
|
+ },
|
|
|
|
|
|
- /**
|
|
|
- * @desc : 保存的參數設置
|
|
|
- * @date : 2024/2/1 15:49
|
|
|
- * @author : 王英杰
|
|
|
- */
|
|
|
- setParams(params) {
|
|
|
- let formData = JSON.parse(this.data.formData)
|
|
|
- let totalAmout = Number(0)
|
|
|
- formData.goodsList.forEach((element, index) => {
|
|
|
- element.itemId = (this.data.formMode == Constants.formMode.add) ? null : element.itemId
|
|
|
- element.intoQty = Number(element.itemQty)
|
|
|
- element.intoAmt = element.itemAmt
|
|
|
- totalAmout += Number(element.priceStd) * Number(element.itemQty) //标价金额
|
|
|
- element.itemIndex = index
|
|
|
- element.priceDiscount = element.priceStandard == 0 ? 0 : Number(element.pricePur) / Number(element.priceStandard)
|
|
|
- if (this.data.gradeCode == Constants.gradeCode.STD) {
|
|
|
- element.intoStatus = Constants.intoStatus.inBounded
|
|
|
- }
|
|
|
- element.whId = formData.whId // 仓库
|
|
|
- })
|
|
|
- params.fromIds = formData.fromIds
|
|
|
- params.fromNos = formData.fromNos
|
|
|
- params.amtStd = totalAmout //标价金额
|
|
|
- params.sumAmount = formData.goodsList.sum("itemAmt") //合计金额
|
|
|
- params.sumStandard = totalAmout // 标价合计
|
|
|
- params.sumQuantity = formData.goodsList.sum("itemQty") //商品总数量
|
|
|
- params.purDiscount = (Number(formData.goodsList.sum("pricePur")) / Number(formData.goodsList.sum("priceStandard"))) * 100
|
|
|
- formData.goodsList.sum("purDiscount") //折扣
|
|
|
- params.pickupDate = formData.pickupDate
|
|
|
- params.orgId = app.globalData.user.orgId //组织部门
|
|
|
- params.staffId = app.globalData.user.staffId // 员工
|
|
|
- params.supId = formData.supId // 供应商
|
|
|
- params.whId = formData.whId // 仓库
|
|
|
- params.remarks = formData.remarks // 备注
|
|
|
- params.makeStaff = app.globalData.user.staffId // 制单人
|
|
|
+ /**
|
|
|
+ * @desc : 保存的參數設置
|
|
|
+ * @date : 2024/2/1 15:49
|
|
|
+ * @author : 王英杰
|
|
|
+ */
|
|
|
+ setParams(params) {
|
|
|
+ let formData = JSON.parse(this.data.formData)
|
|
|
+ let totalAmout = Number(0)
|
|
|
+ formData.goodsList.forEach((element, index) => {
|
|
|
+ element.itemId = (this.data.formMode == Constants.formMode.add) ? null : element.itemId
|
|
|
+ element.intoQty = Number(element.itemQty)
|
|
|
+ element.intoAmt = element.itemAmt
|
|
|
+ totalAmout += Number(element.priceStd) * Number(element.itemQty) //标价金额
|
|
|
+ element.itemIndex = index
|
|
|
+ element.priceDiscount = element.priceStandard == 0 ? 0 : Number(element.pricePur) / Number(element.priceStandard)
|
|
|
+ if (this.data.gradeCode == Constants.gradeCode.STD) {
|
|
|
+ element.intoStatus = Constants.intoStatus.inBounded
|
|
|
+ }
|
|
|
+ element.whId = formData.whId // 仓库
|
|
|
+ })
|
|
|
+ params.fromIds = formData.fromIds
|
|
|
+ params.fromNos = formData.fromNos
|
|
|
+ params.amtStd = totalAmout //标价金额
|
|
|
+ params.sumAmount = formData.goodsList.sum("itemAmt") //合计金额
|
|
|
+ params.sumStandard = totalAmout // 标价合计
|
|
|
+ params.sumQuantity = formData.goodsList.sum("itemQty") //商品总数量
|
|
|
+ params.purDiscount = (Number(formData.goodsList.sum("pricePur")) / Number(formData.goodsList.sum("priceStandard"))) * 100
|
|
|
+ formData.goodsList.sum("purDiscount") //折扣
|
|
|
+ params.pickupDate = formData.pickupDate
|
|
|
+ params.orgId = app.globalData.user.orgId //组织部门
|
|
|
+ params.staffId = app.globalData.user.staffId // 员工
|
|
|
+ params.supId = formData.supId // 供应商
|
|
|
+ params.whId = formData.whId // 仓库
|
|
|
+ params.remarks = formData.remarks // 备注
|
|
|
+ params.makeStaff = app.globalData.user.staffId // 制单人
|
|
|
|
|
|
- const deleteLisr = formData.deleteList ? formData.deleteList.filter(li => li.chooseFlg !== null && li.chooseFlg !== undefined && li.chooseFlg !== '') : [];
|
|
|
- params.deleteItemList = deleteLisr
|
|
|
- if (this.data.formMode == "edit") {
|
|
|
- params.editPurchaseItemList = formData.goodsList //商品明细
|
|
|
- params.deletePurchaseItemList = [] //TODO 删除的itemlist放到这里
|
|
|
- } else {
|
|
|
- params.purchaseItemVOList = formData.goodsList //商品明细
|
|
|
- }
|
|
|
- let btnFormData = this.data.btnFormData ? JSON.parse(this.data.btnFormData) : ''
|
|
|
- params.intoStatus = params.intoStatus ? params.intoStatus : Constants.intoStatus.unInBound //状态
|
|
|
- // 系统参数【自动办理】关闭,开单页面不显示【库存自动办理】,值是不勾选;
|
|
|
- if (!this.data.flgAutoHandle) {
|
|
|
- params.inboundProcessingFlag = false
|
|
|
- } else {
|
|
|
- params.inboundProcessingFlag = btnFormData ? btnFormData.flag : false //自动出入库标识
|
|
|
- }
|
|
|
- if (this.data.gradeCode == Constants.gradeCode.STD) {
|
|
|
- //在刷一遍 不管前面啥逻辑 只要标准版 inboundProcessingFlag 就是true
|
|
|
- params.inboundProcessingFlag = true
|
|
|
- params.intoStatus = Constants.intoStatus.inBounded
|
|
|
- }
|
|
|
- params.flgAutoHandle = this.data.flgAutoHandle
|
|
|
- params.makeStaff = app.globalData.user.staffId
|
|
|
- params.annexPaths = formData.annexPaths || [] //附件
|
|
|
- params.updatePurchaseOrderFlag = params.goodsList.sum("pricePur")==0
|
|
|
- return params
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 保存数据服务--校验
|
|
|
- * @date : 2024/2/1 15:49
|
|
|
- * @author : 王英杰
|
|
|
- */
|
|
|
- validData() {
|
|
|
- let formData = JSON.parse(this.data.formData)
|
|
|
- let that = this
|
|
|
- if (formData.goodsList == null || formData.goodsList.length == 0) {
|
|
|
- util.showToast('请选择商品明细');
|
|
|
- return false
|
|
|
- }
|
|
|
- // 明细的数量不能为空
|
|
|
- for (let index = 0; index < formData.goodsList.length; index++) {
|
|
|
- const element = formData.goodsList[index];
|
|
|
- if (element.itemQty == null || element.itemQty == '' || element.itemQty == 0) {
|
|
|
- util.showToast(mixins.$t("inputWords") + "[" + element.skuCode + "]" + mixins.$t("count"));
|
|
|
- return false
|
|
|
- }
|
|
|
- }
|
|
|
- return true
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 保存数据服务
|
|
|
- * @date : 2024/2/1 15:49
|
|
|
- * @author : 王英杰
|
|
|
- */
|
|
|
- saveData() {
|
|
|
- if (this.data.formMode != "edit") { //新建
|
|
|
- return this.excute(this.data.service, this.data.service.insert, this.data.params)
|
|
|
- } else {
|
|
|
- let pages = getCurrentPages();
|
|
|
- let prevPage = pages[pages.length - 2]; //上二页
|
|
|
- let prevPage_ = pages[pages.length - 3]; //上三页
|
|
|
- prevPage.setData({
|
|
|
- refreshByAdd: true,
|
|
|
- })
|
|
|
- prevPage_.setData({
|
|
|
- refreshByAdd: true,
|
|
|
- })
|
|
|
- return this.excute(this.data.service, this.data.service.update, this.data.params)
|
|
|
- }
|
|
|
- },
|
|
|
+ const deleteLisr = formData.deleteList ? formData.deleteList.filter(li => li.chooseFlg !== null && li.chooseFlg !== undefined && li.chooseFlg !== '') : [];
|
|
|
+ params.deleteItemList = deleteLisr
|
|
|
+ if (this.data.formMode == "edit") {
|
|
|
+ params.editPurchaseItemList = formData.goodsList //商品明细
|
|
|
+ params.deletePurchaseItemList = [] //TODO 删除的itemlist放到这里
|
|
|
+ } else {
|
|
|
+ params.purchaseItemVOList = formData.goodsList //商品明细
|
|
|
+ }
|
|
|
+ let btnFormData = this.data.btnFormData ? JSON.parse(this.data.btnFormData) : ''
|
|
|
+ params.intoStatus = params.intoStatus ? params.intoStatus : Constants.intoStatus.unInBound //状态
|
|
|
+ // 系统参数【自动办理】关闭,开单页面不显示【库存自动办理】,值是不勾选;
|
|
|
+ if (!this.data.flgAutoHandle) {
|
|
|
+ params.inboundProcessingFlag = false
|
|
|
+ } else {
|
|
|
+ params.inboundProcessingFlag = btnFormData ? btnFormData.flag : false //自动出入库标识
|
|
|
+ }
|
|
|
+ if (this.data.gradeCode == Constants.gradeCode.STD) {
|
|
|
+ //在刷一遍 不管前面啥逻辑 只要标准版 inboundProcessingFlag 就是true
|
|
|
+ params.inboundProcessingFlag = true
|
|
|
+ params.intoStatus = Constants.intoStatus.inBounded
|
|
|
+ }
|
|
|
+ params.flgAutoHandle = this.data.flgAutoHandle
|
|
|
+ params.makeStaff = app.globalData.user.staffId
|
|
|
+ params.annexPaths = formData.annexPaths || [] //附件
|
|
|
+ params.updatePurchaseOrderFlag = params.goodsList.sum("pricePur") == 0
|
|
|
+ return params
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 保存数据服务--校验
|
|
|
+ * @date : 2024/2/1 15:49
|
|
|
+ * @author : 王英杰
|
|
|
+ */
|
|
|
+ validData() {
|
|
|
+ let formData = JSON.parse(this.data.formData)
|
|
|
+ let that = this
|
|
|
+ if (formData.goodsList == null || formData.goodsList.length == 0) {
|
|
|
+ util.showToast('请选择商品明细');
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ // 明细的数量不能为空
|
|
|
+ for (let index = 0; index < formData.goodsList.length; index++) {
|
|
|
+ const element = formData.goodsList[index];
|
|
|
+ if (element.itemQty == null || element.itemQty == '' || element.itemQty == 0) {
|
|
|
+ util.showToast(mixins.$t("inputWords") + "[" + element.skuCode + "]" + mixins.$t("count"));
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 保存数据服务
|
|
|
+ * @date : 2024/2/1 15:49
|
|
|
+ * @author : 王英杰
|
|
|
+ */
|
|
|
+ saveData() {
|
|
|
+ if (this.data.formMode != "edit") { //新建
|
|
|
+ return this.excute(this.data.service, this.data.service.insert, this.data.params)
|
|
|
+ } else {
|
|
|
+ let pages = getCurrentPages();
|
|
|
+ let prevPage = pages[pages.length - 2]; //上二页
|
|
|
+ let prevPage_ = pages[pages.length - 3]; //上三页
|
|
|
+ prevPage.setData({
|
|
|
+ refreshByAdd: true,
|
|
|
+ })
|
|
|
+ prevPage_.setData({
|
|
|
+ refreshByAdd: true,
|
|
|
+ })
|
|
|
+ return this.excute(this.data.service, this.data.service.update, this.data.params)
|
|
|
+ }
|
|
|
+ },
|
|
|
|
|
|
- /**
|
|
|
- * @desc : 处理保存后续事件
|
|
|
- * @date : 2024/2/1 15:49
|
|
|
- * @author : 于继渤
|
|
|
- */
|
|
|
- handleSaveData() {
|
|
|
- //新手引导过来,需要返回
|
|
|
- if (this.data.formReturnMode == Constants.formReturnMode.beginnerGuide) {
|
|
|
- const eventChannel = this.getOpenerEventChannel();
|
|
|
- eventChannel.emit('refresh', {
|
|
|
- id: 1
|
|
|
- })
|
|
|
- setTimeout(() => {
|
|
|
- wx.navigateBack({
|
|
|
- delta: 1
|
|
|
- });
|
|
|
- }, 200)
|
|
|
- }
|
|
|
- },
|
|
|
+ /**
|
|
|
+ * @desc : 处理保存后续事件
|
|
|
+ * @date : 2024/2/1 15:49
|
|
|
+ * @author : 于继渤
|
|
|
+ */
|
|
|
+ handleSaveData() {
|
|
|
+ //新手引导过来,需要返回
|
|
|
+ if (this.data.formReturnMode == Constants.formReturnMode.beginnerGuide) {
|
|
|
+ const eventChannel = this.getOpenerEventChannel();
|
|
|
+ eventChannel.emit('refresh', {
|
|
|
+ id: 1
|
|
|
+ })
|
|
|
+ setTimeout(() => {
|
|
|
+ wx.navigateBack({
|
|
|
+ delta: 1
|
|
|
+ });
|
|
|
+ }, 200)
|
|
|
+ }
|
|
|
+ },
|
|
|
|
|
|
- /**
|
|
|
- * @desc : 返回 后一天 时间戳
|
|
|
- * @date : 2024/2/1 15:49
|
|
|
- * @author : 王英杰
|
|
|
- */
|
|
|
- getTomorrowsDateTimestamp() {
|
|
|
- // 创建一个表示当前日期和时间的 Date 对象
|
|
|
- let now = new Date();
|
|
|
+ /**
|
|
|
+ * @desc : 返回 后一天 时间戳
|
|
|
+ * @date : 2024/2/1 15:49
|
|
|
+ * @author : 王英杰
|
|
|
+ */
|
|
|
+ getTomorrowsDateTimestamp() {
|
|
|
+ // 创建一个表示当前日期和时间的 Date 对象
|
|
|
+ let now = new Date();
|
|
|
|
|
|
- // 将日期增加一天以获取明天的日期
|
|
|
- now.setDate(now.getDate() + 1);
|
|
|
+ // 将日期增加一天以获取明天的日期
|
|
|
+ now.setDate(now.getDate() + 1);
|
|
|
|
|
|
- // 设置时间为 00:00:00,即不带时分秒
|
|
|
- now.setHours(0, 0, 0, 0);
|
|
|
+ // 设置时间为 00:00:00,即不带时分秒
|
|
|
+ now.setHours(0, 0, 0, 0);
|
|
|
|
|
|
- // 获取不带时分秒的时间戳
|
|
|
- let timestamp = now.getTime();
|
|
|
+ // 获取不带时分秒的时间戳
|
|
|
+ let timestamp = now.getTime();
|
|
|
|
|
|
- // 返回时间戳
|
|
|
- return timestamp;
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 返回 后一天 YYYY-MM-DD 的日期
|
|
|
- * @date : 2024/2/1 15:49
|
|
|
- * @author : 王英杰
|
|
|
- */
|
|
|
- getTomorrowsDateString() {
|
|
|
- // 创建一个表示当前日期和时间的 Date 对象
|
|
|
- let now = new Date();
|
|
|
+ // 返回时间戳
|
|
|
+ return timestamp;
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 返回 后一天 YYYY-MM-DD 的日期
|
|
|
+ * @date : 2024/2/1 15:49
|
|
|
+ * @author : 王英杰
|
|
|
+ */
|
|
|
+ getTomorrowsDateString() {
|
|
|
+ // 创建一个表示当前日期和时间的 Date 对象
|
|
|
+ let now = new Date();
|
|
|
|
|
|
- // 将日期增加一天以获取明天的日期
|
|
|
- now.setDate(now.getDate() + 1);
|
|
|
+ // 将日期增加一天以获取明天的日期
|
|
|
+ now.setDate(now.getDate() + 1);
|
|
|
|
|
|
- // 获取年份、月份和日期
|
|
|
- let year = now.getFullYear();
|
|
|
- let month = String(now.getMonth() + 1).padStart(2, '0'); // 月份是从 0 开始的,所以要加 1,并用 0 填充到两位数
|
|
|
- let date = String(now.getDate()).padStart(2, '0'); // 用 0 填充到两位数
|
|
|
+ // 获取年份、月份和日期
|
|
|
+ let year = now.getFullYear();
|
|
|
+ let month = String(now.getMonth() + 1).padStart(2, '0'); // 月份是从 0 开始的,所以要加 1,并用 0 填充到两位数
|
|
|
+ let date = String(now.getDate()).padStart(2, '0'); // 用 0 填充到两位数
|
|
|
|
|
|
- // 组合成字符串并返回
|
|
|
- return `${year}-${month}-${date}`;
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 页面初始化加载方法
|
|
|
- * @date : 2024/2/1 15:49
|
|
|
- * @author : 王英杰
|
|
|
- */
|
|
|
- loadInit() { //以销定采 isSourceOrderFlag 区分是否来源于新建的选择原单
|
|
|
- let that = this
|
|
|
- let formData = this.data.formData ? JSON.parse(this.data.formData) : {}
|
|
|
- let formMode = this.data.formMode
|
|
|
- const eventChannel = this.getOpenerEventChannel()
|
|
|
- eventChannel.on('params', function (data) {
|
|
|
- const isSourceOrderFlag = data.isSourceOrderFlag
|
|
|
- if ((isSourceOrderFlag != null) && (formMode != "edit")) {
|
|
|
- const choooseItemList = data.choooseItemList
|
|
|
- that.convertGoods(choooseItemList)
|
|
|
+ // 组合成字符串并返回
|
|
|
+ return `${year}-${month}-${date}`;
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 页面初始化加载方法
|
|
|
+ * @date : 2024/2/1 15:49
|
|
|
+ * @author : 王英杰
|
|
|
+ */
|
|
|
+ loadInit() { //以销定采 isSourceOrderFlag 区分是否来源于新建的选择原单
|
|
|
+ let that = this
|
|
|
+ let formData = this.data.formData ? JSON.parse(this.data.formData) : {}
|
|
|
+ let formMode = this.data.formMode
|
|
|
+ const eventChannel = this.getOpenerEventChannel()
|
|
|
+ eventChannel.on('params', function (data) {
|
|
|
+ const isSourceOrderFlag = data.isSourceOrderFlag
|
|
|
+ if ((isSourceOrderFlag != null) && (formMode != "edit")) {
|
|
|
+ const choooseItemList = data.choooseItemList
|
|
|
+ that.convertGoods(choooseItemList)
|
|
|
|
|
|
- }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ if (this.data.formMode == Constants.formMode.edit) {
|
|
|
+ wx.setNavigationBarTitle({
|
|
|
+ title: mixins.$t('editPurOrder') //"编辑采购订单", //mixins.$t('supplierEdit')
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ wx.setNavigationBarTitle({
|
|
|
+ title: mixins.$t('addPurOrder') //"新建采购订单",
|
|
|
+ })
|
|
|
+ //下面的赋值 只能新建赋值 编辑在setValuesByEdit里赋值
|
|
|
+ let formdata = JSON.parse(this.data.formData)
|
|
|
+ //.预计入库日期默认赋值“后一天”,预计入库仓库默认附上当前登录人所在组织的默认仓库,如组织上没有没人仓库,去找基础资料中仓库的默认值附上
|
|
|
+ let dataTime = this.getTomorrowsDateTimestamp()
|
|
|
+ formdata.pickupDate = this.getTomorrowsDateString()
|
|
|
+ formdata.whId = app.globalData.user.defaultWhId
|
|
|
+ formdata.whName = app.globalData.user.defaultWhName
|
|
|
+ if (this.data.formReturnMode == 'supplier') {
|
|
|
+ //供应商详情跳转来的 新建 formdata 是小写的 注意
|
|
|
+ formdata.supId = this.data.item.supId
|
|
|
+ formdata.supName = this.data.item.supName
|
|
|
+ }
|
|
|
+ this.setData({
|
|
|
+ dataTime: dataTime,
|
|
|
+ formData: JSON.stringify(formdata)
|
|
|
+ })
|
|
|
+ // 系统参数
|
|
|
+ if (!that.data.flgAutoHandle) {
|
|
|
+ this.setData({
|
|
|
+ contentList: [{
|
|
|
+ code: 'need',
|
|
|
+ title: mixins.$t('totalAmount'), //'合集金额',
|
|
|
+ type: 'str'
|
|
|
+ }, {
|
|
|
+ code: 'amount',
|
|
|
+ content: 0,
|
|
|
+ type: 'number'
|
|
|
+ }],
|
|
|
})
|
|
|
- if (this.data.formMode == Constants.formMode.edit) {
|
|
|
- wx.setNavigationBarTitle({
|
|
|
- title: mixins.$t('editPurOrder') //"编辑采购订单", //mixins.$t('supplierEdit')
|
|
|
- })
|
|
|
+ } else {
|
|
|
+ if (this.data.gradeCode == Constants.gradeCode.STD) {
|
|
|
+ this.setData({
|
|
|
+ contentList: [{
|
|
|
+ code: 'need',
|
|
|
+ title: mixins.$t('totalAmount'), //'合集金额',
|
|
|
+ type: 'str'
|
|
|
+ }, {
|
|
|
+ code: 'amount',
|
|
|
+ content: 0,
|
|
|
+ type: 'number'
|
|
|
+ }],
|
|
|
+ })
|
|
|
} else {
|
|
|
- wx.setNavigationBarTitle({
|
|
|
- title: mixins.$t('addPurOrder') //"新建采购订单",
|
|
|
- })
|
|
|
- //下面的赋值 只能新建赋值 编辑在setValuesByEdit里赋值
|
|
|
- let formdata = JSON.parse(this.data.formData)
|
|
|
- //.预计入库日期默认赋值“后一天”,预计入库仓库默认附上当前登录人所在组织的默认仓库,如组织上没有没人仓库,去找基础资料中仓库的默认值附上
|
|
|
- let dataTime = this.getTomorrowsDateTimestamp()
|
|
|
- formdata.pickupDate = this.getTomorrowsDateString()
|
|
|
- formdata.whId = app.globalData.user.defaultWhId
|
|
|
- formdata.whName = app.globalData.user.defaultWhName
|
|
|
- if(this.data.formReturnMode == 'supplier'){
|
|
|
- //供应商详情跳转来的 新建 formdata 是小写的 注意
|
|
|
- formdata.supId = this.data.item.supId
|
|
|
- formdata.supName = this.data.item.supName
|
|
|
- }
|
|
|
- this.setData({
|
|
|
- dataTime: dataTime,
|
|
|
- formData: JSON.stringify(formdata)
|
|
|
- })
|
|
|
- // 系统参数
|
|
|
- if (!that.data.flgAutoHandle) {
|
|
|
- this.setData({
|
|
|
- contentList:
|
|
|
- [
|
|
|
- {
|
|
|
- code: 'need',
|
|
|
- title: mixins.$t('totalAmount'), //'合集金额',
|
|
|
- type: 'str'
|
|
|
- }, {
|
|
|
- code: 'amount',
|
|
|
- content: 0,
|
|
|
- type: 'number'
|
|
|
- }],
|
|
|
- })
|
|
|
- } else {
|
|
|
- if (this.data.gradeCode == Constants.gradeCode.STD) {
|
|
|
- this.setData({
|
|
|
- contentList:
|
|
|
- [
|
|
|
- {
|
|
|
- code: 'need',
|
|
|
- title: mixins.$t('totalAmount'), //'合集金额',
|
|
|
- type: 'str'
|
|
|
- }, {
|
|
|
- code: 'amount',
|
|
|
- content: 0,
|
|
|
- type: 'number'
|
|
|
- }],
|
|
|
- })
|
|
|
- } else {
|
|
|
- this.setData({
|
|
|
- contentList:
|
|
|
- [
|
|
|
- {
|
|
|
- code: 'flag',
|
|
|
- title: mixins.$t("purInBoundFlag"),
|
|
|
- type: 'checkbox'
|
|
|
- },
|
|
|
- {
|
|
|
- code: 'need',
|
|
|
- title: mixins.$t('totalAmount'), //'合集金额',
|
|
|
- type: 'str'
|
|
|
- }, {
|
|
|
- code: 'amount',
|
|
|
- content: 0,
|
|
|
- type: 'number'
|
|
|
- }],
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
+ this.setData({
|
|
|
+ contentList: [{
|
|
|
+ code: 'flag',
|
|
|
+ title: mixins.$t("purInBoundFlag"),
|
|
|
+ type: 'checkbox'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ code: 'need',
|
|
|
+ title: mixins.$t('totalAmount'), //'合集金额',
|
|
|
+ type: 'str'
|
|
|
+ }, {
|
|
|
+ code: 'amount',
|
|
|
+ content: 0,
|
|
|
+ type: 'number'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ })
|
|
|
}
|
|
|
-
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+ }
|
|
|
})
|