Browse Source

预报新建优化

master
chenxuhui 7 years ago
parent
commit
a2d95661ba
11 changed files with 1530 additions and 711 deletions
  1. +1
    -1
      pages/order/detail/detail.js
  2. +2
    -2
      pages/saleForecastList/Detail/Detail.js
  3. +1
    -1
      pages/saleForecastList/Detail/Detail.wxml
  4. +306
    -561
      pages/saleForecastList/newBill/newBill.js
  5. +3
    -3
      pages/saleForecastList/newBill/newBill.json
  6. +87
    -110
      pages/saleForecastList/newBill/newBill.wxml
  7. +42
    -33
      pages/saleForecastList/newBill/newBill.wxss
  8. +707
    -0
      pages/saleForecastList/newBill1/newBill.js
  9. +5
    -0
      pages/saleForecastList/newBill1/newBill.json
  10. +156
    -0
      pages/saleForecastList/newBill1/newBill.wxml
  11. +220
    -0
      pages/saleForecastList/newBill1/newBill.wxss

+ 1
- 1
pages/order/detail/detail.js View File

@ -76,7 +76,7 @@ function GetGoodsInfo(that,dmo, detail) {
function GetCustomerInfo(that,dmo) {
var params = [dmo.Customer_ID, ["Department_ID", "Department_Name", "Employee_ID", "Employee_Name", "TakeGoods_Type", "Address"]]
network.transfer_request(getCustomerInfo, [dmo.Customer_ID], function(res) {
network.transfer_request(getCustomerInfo, params, function(res) {
var obj = JSON.parse(res.result);
dmo.Department_ID = obj.Department_ID;
dmo.Department_Name = obj.Department_Name;


+ 2
- 2
pages/saleForecastList/Detail/Detail.js View File

@ -9,10 +9,10 @@ var orderID = 0;
var getAccountingUnit = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetAccountingUnit";
var getCustomer = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetCustomer";
var getDept = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetDepartment";
// var getGoods = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetGoodsWithUnitPrice";
var getSaleKind = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetSaleKind"
var getGoods = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetGoods";
var getGoodsDetail = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetGoodsDetailWithPrice"
var getSaleKind = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetSaleKind"
var getCustomerInfo = "/MainSystem/B3MiniProgramRpc/XuRpcs/Employee/OrderRpc/GetCustomerRefDto"
var load = "/MainSystem/B3MiniProgramRpc/XuRpcs/Employee/SaleForecastRpc/Load";
let update = '/MainSystem/B3MiniProgramRpc/XuRpcs/Employee/SaleForecastRpc/Update';


+ 1
- 1
pages/saleForecastList/Detail/Detail.wxml View File

@ -54,7 +54,7 @@
<view class='baseitem'>
<text class='baseitem_key'>送货地址</text>
<input class='baseitem_value' bindinput='getAddrs' placeholder='请输入送货地址' placeholder-style='color:rgb(202, 202, 202)' value="{{addrs}}"></input>
<input class='baseitem_value' bindinput='getAddrs' placeholder='请输入送货地址' placeholder-style='color:rgb(202, 202, 202)' value="{{dmo.DeliverAddress}}"></input>
</view>
<view class='horizontallineView'></view>


+ 306
- 561
pages/saleForecastList/newBill/newBill.js
File diff suppressed because it is too large
View File


+ 3
- 3
pages/saleForecastList/newBill/newBill.json View File

@ -1,5 +1,5 @@
{
"navigationBarBackgroundColor": "white",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "预报新建"
"navigationBarBackgroundColor": "white",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "预报新建"
}

+ 87
- 110
pages/saleForecastList/newBill/newBill.wxml View File

@ -1,156 +1,133 @@
<!--pages/saleForecastList/newBill/newBill.wxml-->
<!--pages/saleForecastList/Detail/Detail.wxml-->
<view class="swiper-tab">
<view class="swiper-tab-list {{currentTab==0 ? 'on' : ''}}" data-current="0" bindtap="swichNav">基本信息</view>
<view class="swiper-tab-list {{currentTab==1 ? 'on' : ''}}" data-current="1" bindtap="swichNav">预报详细</view>
</view>
<swiper current="{{currentTab}}" class="swiper-box" duration="300" style="height:{{winHeight - 55}}px" bindchange="bindChange">
<!-- 基本信息 -->
<swiper-item class="swiper-items1">
<scroll-view scroll-x="false" scroll-y="true" class='scroll-views'>
<view class='baseitem'>
<text class='baseitem_key'>购货客户</text>
<view class='baseitem_value' bindtap="getCustomerItem">
{{customer[customerIndex].Name}}
</view>
</view>
<view class='backGroundContainer'>
<view class='baseitem'>
<text class='baseitem_key'>发货时间</text>
<picker class='baseitem_value' mode="multiSelector" value="{{dateTime1}}" bindchange="changeDateTime1" range="{{dateTimeArray1}}">
<view class="tui-picker-detail">
{{dateTimeArray1[0][dateTime1[0]]}}-{{dateTimeArray1[1][dateTime1[1]]}}-{{dateTimeArray1[2][dateTime1[2]]}} {{dateTimeArray1[3][dateTime1[3]]}}:{{dateTimeArray1[4][dateTime1[4]]}}
<view class='baseitem'>
<text class='baseitem_key'>购货客户</text>
<view class='baseitem_value' bindtap="powerDrawer" data-x='购货客户'>
{{dmo.Customer_Name?dmo.Customer_Name:"请选择客户"}}
</view>
</picker>
</view>
<view class='baseitem'>
<text class='baseitem_key'>会计单位</text>
</view>
<view class='horizontallineView'></view>
<view class='baseitem_value' bindtap="powerDrawer" data-statu="open" data-x='会计部门' data-item='{{which}}'>
{{unit[isUnit].Name}}
<view class='baseitem'>
<text class='baseitem_key'>发货时间</text>
<picker class='baseitem_value' mode="multiSelector" value="{{dateTime1}}" bindchange="changeDateTime1" range="{{dateTimeArray1}}">
<view class="tui-picker-detail">
{{dateTimeArray1[0][dateTime1[0]]}}-{{dateTimeArray1[1][dateTime1[1]]}}-{{dateTimeArray1[2][dateTime1[2]]}} {{dateTimeArray1[3][dateTime1[3]]}}:{{dateTimeArray1[4][dateTime1[4]]}}
</view>
</picker>
</view>
</view>
<view class='horizontallineView'></view>
<view class='baseitem'>
<text class='baseitem_key'>销售部门</text>
<view class='baseitem'>
<text class='baseitem_key'>会计单位</text>
<view class='baseitem_value' bindtap="powerDrawer" data-x='会计部门'>
{{dmo.AccountingUnit_Name?dmo.AccountingUnit_Name:"请选择会计单位"}}
</view>
</view>
<view class='horizontallineView'></view>
<view class='baseitem_value' bindtap="powerDrawer" data-statu="open" data-x='部门' data-item='{{which}}'>
{{department[departmentIndex].Name}}
<view class='baseitem'>
<text class='baseitem_key'>销售部门</text>
<view class='baseitem_value' bindtap="powerDrawer" data-x='部门'>
{{dmo.Department_Name?dmo.Department_Name:"请选择销售部门"}}
</view>
</view>
</view>
<view class='horizontallineView'></view>
<view class='baseitem'>
<text class='baseitem_key'>销售类型</text>
<view class='baseitem'>
<text class='baseitem_key'>销售类型</text>
<view class='baseitem_value' bindtap="powerDrawer" data-x='销售类型'>
{{dmo.SaleKind_Name?dmo.SaleKind_Name:"请选择销售类型"}}
</view>
</view>
<view class='horizontallineView'></view>
<view class='baseitem_value' bindtap="powerDrawer" data-statu="open" data-x='销售类型' data-item='{{which}}'>
{{saletype[saletypeIndex].Name}}
<view class='baseitem'>
<text class='baseitem_key'>送货地址</text>
<input class='baseitem_value' bindinput='getAddrs' placeholder='请输入送货地址' placeholder-style='color:rgb(202, 202, 202)' value="{{dmo.DeliverAddress}}"></input>
</view>
</view>
<view class='horizontallineView'></view>
<view class='baseitem'>
<text class='baseitem_key'>送货地址</text>
<input class='baseitem_value' bindinput='getAddrs' placeholder='请输入送货地址' placeholder-style='color:rgb(202, 202, 202)'></input>
</view>
<!-- <button class='submit' catchtap='submitForm'>提交</button> -->
</scroll-view>
<view class="drawer_screen" bindtap="powerDrawer" data-item='{{which}}' data-statu="close" wx:if="{{showModalStatus}}"></view>
<!--content-->
<!--使用animation属性指定需要执行的动画-->
<view animation="{{animationData}}" data-item='{{which}}' class="drawer_box" wx:if="{{showModalStatus}}">
<!--drawer content-->
<view class='top' data-item='{{which}}'>
<input data-item='{{which}}' class="sousuo" bindinput="select" placeholder='请输入搜索'>
</input>
</view>
<view class="drawer_content">
<block wx:for="{{currency}}" wx:key="item" wx:for-index="idx">
<view class="grid1" data-item='{{which}}' catchtap='itemclick' data-idx='{{idx}}' data-ID="{{item.ID}}" data-Name='{{item.Name}}'>
<text class='text3'>{{item.Name}}</text>
</view>
</block>
</view>
<view class="btn_ok" bindtap="powerDrawer" data-statu="close">取消</view>
</view>
</swiper-item>
<!-- 订单详细 -->
<swiper-item class="swiper-items2">
<scroll-view scroll-x="false" scroll-y="true" class='scroll-views'>
<view class='main-body'>
<block wx:for="{{obj}}" wx:key="item" wx:for-index="idx">
<block wx:for="{{dmo.Details}}" wx:key="item" wx:for-index="idx">
<view class='itemView'>
<view class='baseitem'>
<text class='baseitem_key2'>存货名称</text>
<view class='baseitem_value2'>
{{obj[idx].Goods_Name}}
</view>
<text class='baseitem_key'>存货名称</text>
<view class='baseitem_value' bindtap="powerDrawer" data-idx='{{idx}}' data-x='存货'>
{{item.Goods_Name?item.Goods_Name:"请选择存货"}}
</view>
</view>
<view class='horizontallineView'></view>
<view class='twogroup'>
<view class='baseitem'>
<text class='baseitem_key1'>报货数量</text>
<input class='baseitem_value1' bindinput='getGoodsNum' placeholder='请输入报货数量' type='digit' placeholder-style='color:rgb(202, 202, 202)' data-idx='{{idx}}' value='{{obj[idx].goodsNum}}'></input>
</view>
<view class='baseitem'>
<text class='baseitem_key1' space='ensp'>辅 数 量</text>
<input class='baseitem_value1' bindinput='getSecondNum' placeholder='请输入辅数量' type='digit' placeholder-style='color:rgb(202, 202, 202)' data-idx='{{idx}}' value='{{obj[idx].goodsSecondNum}}'></input>
</view>
<view class='baseitem'>
<text class='baseitem_key'>报货数量</text>
<input class='baseitem_value' bindinput='getGoodsNum' placeholder='请输入报货数量' type='digit' placeholder-style='color:rgb(202, 202, 202)' data-idx='{{idx}}' value='{{item.UnitNum}}'></input>
</view>
<view class='horizontallineView'></view>
</view>
<view class='twogroup'>
<view class='baseitem'>
<text class='baseitem_key1' space='emsp'>单 价</text>
<input class='baseitem_value1' type='digit' bindinput='getPrice' placeholder='请输入单价' placeholder-style='color:rgb(202, 202, 202)' data-idx='{{idx}}' value='{{obj[idx].Price}}'></input>
</view>
<view class='baseitem'>
<text class='baseitem_key' space='ensp'>辅 数 量</text>
<input class='baseitem_value' bindinput='getSecondNum' placeholder='请输入辅数量' type='digit' placeholder-style='color:rgb(202, 202, 202)' data-idx='{{idx}}' value='{{item.SecondNumber}}'></input>
</view>
<view class='horizontallineView'></view>
<view class='baseitem'>
<text class='baseitem_key1'>政策单价</text>
<text class='baseitem_value1' data-idx='{{idx}}'>{{obj[idx].PolicyPrice}}</text>
</view>
</view>
<view class='delete' catchtap='deleteItem' data-idx='{{idx}}'>删除</view>
<view class='baseitem'>
<text class='baseitem_key' space='emsp'>单 价</text>
<input class='baseitem_value' type='digit' bindinput='getPrice' placeholder='请输入单价' placeholder-style='color:rgb(202, 202, 202)' data-idx='{{idx}}' value='{{item.Price}}'></input>
</view>
<view class='horizontallineView'></view>
<view class='baseitem'>
<text class='baseitem_key'>政策单价</text>
<text class='baseitem_value' data-idx='{{idx}}'>{{item.PolicyPrice}}</text>
</view>
</block>
<view class='horizontallineView'></view>
<view class='add' catchtap='add'>
选择存货
<!-- <image class="ico" src="/imgs/tianjia.png"></image> -->
</view>
<view class='delete' catchtap='deleteItem' data-idx='{{idx}}'>删除</view>
</block>
<view class='add' catchtap='add'>
<image class="ico" src="/imgs/tianjia.png"></image>
</view>
</view>
<!-- <template name='fodder'>
</template> -->
<button class='submit' catchtap='submitForm'>提交</button>
<button class='submit' catchtap='submitForm'>保存</button>
</scroll-view>
<view class="drawer_screen" bindtap="powerDrawer1" data-statu="close" wx:if="{{showModalStatus1}}"></view>
<!--content-->
<!--使用animation属性指定需要执行的动画-->
<view animation="{{animationData}}" class="drawer_box" wx:if="{{showModalStatus1}}">
<!--drawer content-->
<view class='top'>
<input input class="sousuo" bindinput="select1" placeholder='请输入搜索'>
</input>
</view>
<view class="drawer_content">
<block wx:for="{{goods}}" wx:key="item">
<view class="grid1" catchtap='itemclick1' data-idx='{{idx}}' data-Name='{{item.Goods_Name}}' data-policyprice='{{item.PolicyPrice}}' data-data='{{item}}'>
<text class='text3'>{{item.Goods_Name}}</text>
</view>
</block>
</view>
<view class="btn_ok" bindtap="powerDrawer1" data-statu="close">取消</view>
</view>
</swiper-item>
</swiper>
<view class="drawer_screen" catchtap="powerDrawer" data-statu="open" wx:if="{{showModalStatus}}"></view>
<view animation="{{animationData}}" class="drawer_box" wx:if="{{showModalStatus}}">
<view class='top'>
<input class="sousuo" bindinput="select" placeholder='请输入搜索'>
</input>
</view>
<view class="drawer_content">
<block wx:for="{{currency}}" wx:key="item" wx:for-index="idx">
<view class="grid1" catchtap='itemclick' data-item='{{item}}'>
<text class='text3'>{{item.Name}}</text>
</view>
</block>
</view>
<view class="btn_ok" catchtap="dialogClose">取消</view>
</view>

+ 42
- 33
pages/saleForecastList/newBill/newBill.wxss View File

@ -1,6 +1,7 @@
/* pages/saleForecastList/saleForecastCreatNew/saleForecastCreatNew.wxss */
/* pages/saleForecastList/newBill/newBill.wxss */
page {
background: rgb(240, 239, 245);
background: #EAF1F8;
height: calc(100%-10px);
}
.swiper-tab {
@ -28,16 +29,15 @@ page {
color: white;
}
.swiper-box {
display: block;
width: 100%;
overflow: hidden;
margin-top: 3px;
}
.swiper-items1 {
height: 100%;
/* padding-top: 3%; */
}
.swiper-items2 {
@ -48,67 +48,71 @@ page {
height: 100%;
}
.baseitem {
.backGroundContainer{
background: #fff;
width: 100%;
border-bottom: 0.1px solid #dbdbdb;
}
.baseitem {
height: 60rpx;
background: #fff;
/* border-bottom: 0.1px solid #dbdbdb; */
display: flex;
flex-direction: row;
align-items: center;
padding-top: 20rpx;
padding-bottom: 20rpx;
padding: 20rpx 20rpx;
font-size: 30rpx;
}
.horizontallineView {
height: 1rpx;
background-color: #dbdbdb;
margin-left: 20rpx;
margin-right: 0rpx;
}
.baseitem_key {
color: #666;
width: 40%;
margin-left: 20rpx;
width: 30%;
/* margin-left: 20rpx; */
}
.baseitem_value {
color: rgb(48, 48, 48);
margin-left: 20rpx;
margin-right: 20rpx;
width: 160%;
/* margin-left: 20rpx;
margin-right: 20rpx; */
width: 70%;
text-align: right;
}
.baseitem_key2 {
color: #666;
width: 40%;
margin-left: 20rpx;
width: 30%;
/* margin-left: 20rpx; */
}
.baseitem_value2 {
color: rgb(48, 48, 48);
margin-left: 20rpx;
margin-right: 20rpx;
width: 160%;
/* margin-left: 20rpx;
margin-right: 20rpx; */
width: 70%;
text-align: right;
}
.baseitem_key1 {
color: #666;
width: 100%;
width: 30%;
margin-left: 20rpx;
}
.baseitem_value1 {
color: rgb(48, 48, 48);
margin-left: 20rpx;
margin-right: 20rpx;
width: 100%;
/* margin-left: 20rpx;
margin-right: 20rpx; */
width: 70%;
text-align: right;
}
::-webkit-scrollbar {
width: 0;
height: 0;
color: transparent;
}
.add {
display: flex;
flex-direction: row;
@ -144,11 +148,16 @@ page {
.itemView {
margin-top: 20rpx;
background: #fff;
}
.submit {
margin-top: 50rpx;
margin-bottom: 30rpx;
margin-left: 5%;
margin-top: 10%;
width: 90%;
margin-right: 5%;
color: #fff;
background: linear-gradient(to right, #39c4fd, #539eef);
}
.drawer_screen {
@ -217,4 +226,4 @@ page {
.text3 {
font-size: 18px;
color: rgb(48, 48, 48);
}
}

+ 707
- 0
pages/saleForecastList/newBill1/newBill.js View File

@ -0,0 +1,707 @@
var app = getApp()
var network = require("../../../utils/net.js")
var dateTimePicker = require('../../../utils/dateTimePicker.js');
var utilll = require('../../../utils/util.js');
var getAccountingUnit = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetAccountingUnit";
var getCustomer = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetCustomer";
var getDept = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetDepartment";
var getGoods = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetGoodsWithUnitPrice";
var getSaleKind = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetSaleKind"
var insert = '/MainSystem/B3MiniProgramRpc/XuRpcs/Employee/SaleForecastRpc/Insert';
function GetAccountingUnit(that, inputValue) {
let method = getAccountingUnit;
let params = [{
"InputValue": inputValue,
"PageIndex": 0,
"PageSize": 100
}];
network.transfer_request(method, params, function(res) {
that.setData({
currency: res.result,
unit: res.result
})
})
that.setData({
which: "会计部门"
})
}
function GetDepartment(that, inputValue) {
let method = getDept;
let params = [{
"InputValue": inputValue,
"PageIndex": 0,
"PageSize": 100
}];
network.transfer_request(method, params, function(res) {
that.setData({
currency: res.result,
department: res.result
})
})
that.setData({
which: "部门"
})
}
function GetSaleKind(that, v) {
let method = getSaleKind;
let params = [{
"InputValue": v,
"PageIndex": 0,
"PageSize": 100
}];
network.transfer_request(method, params, function(res) {
that.setData({
currency: res.result,
saletype: res.result
})
})
that.setData({
which: "销售类型"
})
}
function GetGoodsWithUnitPrice(that, v, date) {
let unitID = that.data.unit[that.data.isUnit].ID;
let customerID = that.data.customer[that.data.customerIndex].ID;
let method = getGoods;
let params = [{
"Input": v,
"PageIndex": 0,
"PageSize": 100,
"Customer_ID": customerID,
"AccountingUnit_ID": unitID,
"Date": date
}];
network.transfer_request(method, params, function(res) {
that.setData({
goods: res.result,
})
})
}
Page({
data: {
which: "",
winHeight: app.globalData.winHeight,
// 从哪个页面返回当前页面
backPage: "",
// tab切换
currentTab: 0,
// 存货数组
obj: [],
goods: [],
idx: 0,
currency: [],
saletypeIndex: 0,
saletype: [{
ID: 0,
Name: "请选择销售类型"
}],
departmentIndex: 0,
department: [{
ID: 0,
Name: "请选择销售部门"
}],
customerIndex: 0,
customer: [{
ID: 0,
Name: "请选择客户"
}],
isUnit: 0,
unit: [{
ID: 0,
Name: "请选择会计单位"
}],
addrs: "",
dateTimeArray: null,
dateTime: null,
dateTimeArray1: null,
dateTime1: null,
startYear: 2018,
endYear: 2030
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
var that = this;
// 获取完整的年月日 时分秒,以及默认显示的数组
var obj1 = dateTimePicker.dateTimePicker(this.data.startYear, this.data.endYear);
// 精确到分的处理,将数组的秒去掉
var lastArray = obj1.dateTimeArray.pop();
var lastTime = obj1.dateTime.pop();
this.setData({
dateTimeArray: obj1.dateTimeArray,
dateTime: obj1.dateTime,
dateTimeArray1: obj1.dateTimeArray,
dateTime1: obj1.dateTime
});
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
var that = this;
if (that.data.backPage == "customerChoosePage") {
// 返回的用户只能是一条,所以index只能为0
var customerArr = app.globalData.customerArray;
if (customerArr.length > 0) {
that.setData({
customer: customerArr,
customerIndex: 0,
})
}
}
if (that.data.backPage == "goodsNameChoosePage") {
// 获取存货 加载完成后计算价格政策
var goodsArr = app.globalData.goodsNameArray;
if (goodsArr.length > 0) {
let backGoodsArr = [];
for (var i = 0; i < goodsArr.length; i++) {
var name = goodsArr[i].Goods_Name;
var id = goodsArr[i].SaleGoods_ID;
var pp = goodsArr[i].PolicyPrice;
var price = goodsArr[i].Price;
var mainUnitRatio = goodsArr[i].Goods_MainUnitRatio;
var secondUnitRatio = goodsArr[i].Goods_SecondUnitRatio;
var unitConvertDirection = goodsArr[i].Goods_UnitConvertDirection;
var rightRatio = goodsArr[i].RightRatio;
var leftRatio = goodsArr[i].LeftRatio;
if (pp == null) {
pp = Number(0);
}
if (rightRatio == null) {
rightRatio = Number(1);
}
if (leftRatio == null) {
leftRatio = Number(1);
}
let goodsNameObj = {
Goods_MainUnitRatio: Number(mainUnitRatio),
Goods_SecondUnitRatio: Number(secondUnitRatio),
SaleGoods_ID: Number(id),
Goods_Name: name,
Price: Number(price),
PolicyPrice: Number(pp),
Goods_UnitConvertDirection: Number(unitConvertDirection),
RightRatio: rightRatio,
LeftRatio: leftRatio,
}
backGoodsArr.push(goodsNameObj)
}
that.setData({
obj: backGoodsArr,
})
}
}
},
// 原有请求客户的方法,已经废弃
GetCustomer: function() {
wx.navigateTo({
url: '../../customerChooseTemplate/customerChooseTemplate?fromePage=newForecast',
})
// let method = getCustomer;
// let params = [{
// "InputValue": inputValue,
// "PageIndex": 0,
// "PageSize": 100
// }];
// network.transfer_request(method, params, function(res) {
// that.setData({
// currency: res.result,
// customer: res.result
// })
// })
// that.setData({
// which: "购货客户"
// })
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {
app.globalData.goodsNameArray = [];
app.globalData.customerArray = [];
},
/**
* 滑动切换tab
*/
bindChange: function(e) {
var that = this;
that.setData({
currentTab: e.detail.current
});
},
/**
* 点击tab切换
*/
swichNav: function(e) {
var that = this;
if (this.data.currentTab === e.target.dataset.current) {
return false;
} else {
that.setData({
currentTab: e.target.dataset.current
})
}
},
// 添加地址
getAddrs: function(e) {
this.data.addrs = e.detail.value;
},
// 添加存货 跳转存货选择页面
add: function(e) {
var that = this;
let unitID = that.data.unit[that.data.isUnit].ID;
let customerID = that.data.customer[that.data.customerIndex].ID;
if (unitID && customerID) {
wx.navigateTo({
url: '../../goodaNameChooseTemplate/goodaNameChooseTemplate?unitID=' + unitID + '&customerID' + customerID,
})
} else {
wx.showModal({
title: '提示',
content: '请先选择客户及会计单位',
})
}
},
// 添加购货客户 跳转客户选择页面
getCustomerItem: function() {
wx.navigateTo({
url: '../../customerChooseTemplate/customerChooseTemplate?fromePage=newForecast',
})
},
deleteItem: function(e) {
let idx = e.target.dataset.idx;
let deleteobj = this.data.obj;
deleteobj.splice(idx, 1)
this.setData({
obj: deleteobj
})
},
getGoodsNum: function(e) {
//值:
//e.detail.value
//设置的id
//e.target.dataset.index
let value = e.detail.value;
let idx = e.target.dataset.idx;
let end = value.charAt(value.length - 1)
if (end != ".") {
this.data.obj[idx].goodsNum = Number(value);
let Goods_MainUnitRatio = this.data.obj[idx].Goods_MainUnitRatio
let Goods_SecondUnitRatio = this.data.obj[idx].Goods_SecondUnitRatio
let Goods_UnitConvertDirection = this.data.obj[idx].Goods_UnitConvertDirection
let RightRatio = this.data.obj[idx].RightRatio
let LeftRatio = this.data.obj[idx].LeftRatio
var numberNumber = Number(value) / RightRatio * LeftRatio;
if (Goods_UnitConvertDirection == 0 || Goods_UnitConvertDirection == 1) {
let secondNumber = numberNumber / (Goods_MainUnitRatio) * (Goods_SecondUnitRatio);
this.data.obj[idx].goodsSecondNum = Number(secondNumber)
this.setData({
obj: this.data.obj
})
}
}
},
getSecondNum: function(e) {
let value = e.detail.value;
let idx = e.target.dataset.idx;
let end = value.charAt(value.length - 1)
if (end != ".") {
this.data.obj[idx].goodsSecondNum = Number(value);
let Goods_MainUnitRatio = this.data.obj[idx].Goods_MainUnitRatio
let Goods_SecondUnitRatio = this.data.obj[idx].Goods_SecondUnitRatio
let Goods_UnitConvertDirection = this.data.obj[idx].Goods_UnitConvertDirection
let RightRatio = this.data.obj[idx].RightRatio
let LeftRatio = this.data.obj[idx].LeftRatio
var numberNumber = Number(value) / LeftRatio * RightRatio;
if (Goods_UnitConvertDirection == 0 || Goods_UnitConvertDirection == 2) {
let unitnumber = numberNumber / (Goods_SecondUnitRatio) * (Goods_MainUnitRatio);
this.data.obj[idx].goodsNum = Number(unitnumber)
this.setData({
obj: this.data.obj
})
}
}
},
getPrice: function(e) {
let value = e.detail.value;
let idx = e.target.dataset.idx;
this.data.obj[idx].Price = Number(value);
},
powerDrawer: function(e) {
let that = this;
let x = e.currentTarget.dataset.x;
if (x == "会计部门") {
GetAccountingUnit(that, "")
} else if (x == "购货客户") {
GetCustomer(that, "")
} else if (x == "部门") {
GetDepartment(that, "")
} else if (x == "销售类型") {
GetSaleKind(that, "")
}
let currentStatu = e.currentTarget.dataset.statu;
// if (e.currentTarget.dataset.idx != null) {
// let idxx = e.currentTarget.dataset.idx;
// this.setData({
// idx: idxx
// })
// }
this.util(currentStatu)
},
powerDrawer1: function(e) {
let that = this;
let currentStatu = e.currentTarget.dataset.statu;
let timestamp = Date.parse(new Date());
let date = "/Date(" + timestamp + "+0800)/";
GetGoodsWithUnitPrice(that, "", date)
if (e.currentTarget.dataset.idx != null) {
let idxx = e.currentTarget.dataset.idx;
this.setData({
idx: idxx
})
}
this.util1(currentStatu)
},
itemclick: function(e) {
var that = this;
var name = e.currentTarget.dataset.name;
var id = e.currentTarget.dataset.id;
var which = e.currentTarget.dataset.item;
var idx = e.currentTarget.dataset.idx;
if (which == "会计部门") {
that.setData({
isUnit: idx
})
} else if (which == "购货客户") {
that.setData({
customerIndex: idx
})
} else if (which == "部门") {
that.setData({
departmentIndex: idx
})
} else if (which == "销售类型") {
that.setData({
saletypeIndex: idx
})
}
this.setData({
showModalStatus: false,
})
},
// 选取货物后进行价格计算
itemclick1: function(e) {
var that = this;
var name = e.currentTarget.dataset.name;
var id = e.currentTarget.dataset.data.SaleGoods_ID;
var pp = e.currentTarget.dataset.PolicyPrice;
var price = e.currentTarget.dataset.data.Price;
var Goods_MainUnitRatio = e.currentTarget.dataset.data.Goods_MainUnitRatio
var Goods_SecondUnitRatio = e.currentTarget.dataset.data.Goods_SecondUnitRatio
var Goods_UnitConvertDirection = e.currentTarget.dataset.data.Goods_UnitConvertDirection
if (e.currentTarget.dataset.data.RightRatio == null) {
this.data.obj[this.data.idx].RightRatio = Number(1)
}
if (e.currentTarget.dataset.data.LeftRatio == null) {
this.data.obj[this.data.idx].LeftRatio = Number(1)
}
this.data.obj[this.data.idx].Goods_MainUnitRatio = Number(Goods_MainUnitRatio)
this.data.obj[this.data.idx].Goods_SecondUnitRatio = Number(Goods_SecondUnitRatio)
this.data.obj[this.data.idx].SaleGoods_ID = Number(id);
this.data.obj[this.data.idx].Goods_Name = name;
this.data.obj[this.data.idx].Price = Number(price)
this.data.obj[this.data.idx].PolicyPrice = Number(pp);
this.data.obj[this.data.idx].Goods_UnitConvertDirection = Number(Goods_UnitConvertDirection)
this.setData({
showModalStatus1: false,
obj: that.data.obj
})
},
select: function(e) {
var that = this;
var which = e.currentTarget.dataset.item;
var value = e.detail.value;
if (which == "会计部门") {
GetAccountingUnit(that, value)
} else if (which == "购货客户") {
GetCustomer(that, value)
} else if (which == "部门") {
GetDepartment(that, value)
} else if (which == "销售类型") {
GetSaleKind(that, value)
}
},
select1: function(e) {
var that = this;
var value = e.detail.value;
let timestamp = Date.parse(new Date());
let date = "/Date(" + timestamp + "+0800)/";
GetGoodsWithUnitPrice(that, value, date)
},
submitForm: function() {
let unitID = this.data.unit[this.data.isUnit].ID;
let customerID = this.data.customer[this.data.customerIndex].ID;
let departmentID = this.data.department[this.data.departmentIndex].ID;
let saletypeID = this.data.saletype[this.data.saletypeIndex].ID;
let year = this.data.dateTimeArray1[0][this.data.dateTime1[0]]
let month = this.data.dateTimeArray1[1][this.data.dateTime1[1]]
let date = this.data.dateTimeArray1[2][this.data.dateTime1[2]]
let hour = this.data.dateTimeArray1[3][this.data.dateTime1[3]]
let minu = this.data.dateTimeArray1[4][this.data.dateTime1[4]]
let stringTime = year + "/" + month + "/" + date + " " + hour + ":" + minu + ":00"
let timestamp2 = Date.parse(new Date(stringTime));
let update = "/Date(" + timestamp2 + "+0800)/";
if (customerID == 0) {
wx.showToast({
title: '请选择购货客户'
})
return;
}
if (unitID == 0) {
wx.showToast({
title: '请选择会计单位'
})
return;
}
if (departmentID == 0) {
wx.showToast({
title: '请选择销售部门',
})
return;
}
if (saletypeID == 0) {
wx.showToast({
title: '请选择销售类型',
})
return;
}
if (this.data.addrs == "") {
wx.showToast({
title: '请填写送货地址',
})
return;
}
let detailsArray = [];
for (var i = 0; i < this.data.obj.length; i++) {
if (this.data.obj[i].Goods_Name == "请选择存货") {
wx.showToast({
title: '存货不能为空',
})
return;
}
if (this.data.obj[i].goodsNum == null) {
wx.showToast({
title: '报货数量不能为空',
})
return;
}
if (this.data.obj[i].goodsSecondNum == null) {
wx.showToast({
title: '辅数量不能为空',
})
return;
}
var dmo = {
SaleGoods_ID: this.data.obj[i].SaleGoods_ID,
UnitNum: this.data.obj[i].goodsNum,
SecondNumber: this.data.obj[i].goodsSecondNum,
Price: this.data.obj[i].Price,
PolicyPrice: this.data.obj[i].PolicyPrice
// PolicyPrice: 10
}
detailsArray.push(dmo)
}
let method = insert;
let params = [{
"Customer_ID": customerID,
// "LoadTime": update,
"Date": update,
"DeliveryTime": update,
"AccountingUnit_ID": unitID,
"Department_ID": departmentID,
"SaleKind_ID": saletypeID,
"DeliverAddress": this.data.addrs,
"Details": detailsArray
}];
network.transfer_request(method, params, function(res) {
if (res.result != null) {
wx.showModal({
title: '新建订单No.' + res.result,
content: '新建成功,是否返回上级列表',
success: function(res) {
if (res.cancel) {} else {
wx.navigateBack({
delta: 1
})
}
},
fail: function(res) {}
})
}
})
},
changeDateTime1(e) {
this.setData({
dateTime1: e.detail.value
});
},
util: function(currentStatu) {
/* 动画部分 */
// 第1步:创建动画实例
var animation = wx.createAnimation({
duration: 200, //动画时长
timingFunction: "linear", //线性
delay: 0 //0则不延迟
});
// 第2步:这个动画实例赋给当前的动画实例
this.animation = animation;
// 第3步:执行第一组动画
animation.opacity(0).rotateX(-100).step();
// 第4步:导出动画对象赋给数据对象储存
this.setData({
animationData: animation.export()
})
// 第5步:设置定时器到指定时候后,执行第二组动画
setTimeout(function() {
// 执行第二组动画
animation.opacity(1).rotateX(0).step();
// 给数据对象储存的第一组动画,更替为执行完第二组动画的动画对象
this.setData({
animationData: animation
})
//关闭
if (currentStatu == "close") {
this.setData({
showModalStatus: false,
});
}
}.bind(this), 200)
// 显示
if (currentStatu == "open") {
// 调用函数时,传入new Date()参数,返回值是日期和时间
// var timet = utilll.formatTime(new Date());
// 再通过setData更改Page()里面的data,动态更新页面的数据
this.setData({
// time: timet,
showModalStatus: true,
});
}
},
util1: function(currentStatu) {
/* 动画部分 */
// 第1步:创建动画实例
var animation = wx.createAnimation({
duration: 200, //动画时长
timingFunction: "linear", //线性
delay: 0 //0则不延迟
});
// 第2步:这个动画实例赋给当前的动画实例
this.animation = animation;
// 第3步:执行第一组动画
animation.opacity(0).rotateX(-100).step();
// 第4步:导出动画对象赋给数据对象储存
this.setData({
animationData: animation.export()
})
// 第5步:设置定时器到指定时候后,执行第二组动画
setTimeout(function() {
// 执行第二组动画
animation.opacity(1).rotateX(0).step();
// 给数据对象储存的第一组动画,更替为执行完第二组动画的动画对象
this.setData({
animationData: animation
})
//关闭
if (currentStatu == "close") {
this.setData({
showModalStatus1: false
});
}
}.bind(this), 200)
// 显示
if (currentStatu == "open") {
// 调用函数时,传入new Date()参数,返回值是日期和时间
// var timet = utilll.formatTime(new Date());
// 再通过setData更改Page()里面的data,动态更新页面的数据
this.setData({
// time: timet,
showModalStatus1: true
});
}
}
})

+ 5
- 0
pages/saleForecastList/newBill1/newBill.json View File

@ -0,0 +1,5 @@
{
"navigationBarBackgroundColor": "white",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "预报新建"
}

+ 156
- 0
pages/saleForecastList/newBill1/newBill.wxml View File

@ -0,0 +1,156 @@
<view class="swiper-tab">
<view class="swiper-tab-list {{currentTab==0 ? 'on' : ''}}" data-current="0" bindtap="swichNav">基本信息</view>
<view class="swiper-tab-list {{currentTab==1 ? 'on' : ''}}" data-current="1" bindtap="swichNav">预报详细</view>
</view>
<swiper current="{{currentTab}}" class="swiper-box" duration="300" style="height:{{winHeight - 55}}px" bindchange="bindChange">
<!-- 基本信息 -->
<swiper-item class="swiper-items1">
<scroll-view scroll-x="false" scroll-y="true" class='scroll-views'>
<view class='baseitem'>
<text class='baseitem_key'>购货客户</text>
<view class='baseitem_value' bindtap="getCustomerItem">
{{customer[customerIndex].Name}}
</view>
</view>
<view class='baseitem'>
<text class='baseitem_key'>发货时间</text>
<picker class='baseitem_value' mode="multiSelector" value="{{dateTime1}}" bindchange="changeDateTime1" range="{{dateTimeArray1}}">
<view class="tui-picker-detail">
{{dateTimeArray1[0][dateTime1[0]]}}-{{dateTimeArray1[1][dateTime1[1]]}}-{{dateTimeArray1[2][dateTime1[2]]}} {{dateTimeArray1[3][dateTime1[3]]}}:{{dateTimeArray1[4][dateTime1[4]]}}
</view>
</picker>
</view>
<view class='baseitem'>
<text class='baseitem_key'>会计单位</text>
<view class='baseitem_value' bindtap="powerDrawer" data-statu="open" data-x='会计部门' data-item='{{which}}'>
{{unit[isUnit].Name}}
</view>
</view>
<view class='baseitem'>
<text class='baseitem_key'>销售部门</text>
<view class='baseitem_value' bindtap="powerDrawer" data-statu="open" data-x='部门' data-item='{{which}}'>
{{department[departmentIndex].Name}}
</view>
</view>
<view class='baseitem'>
<text class='baseitem_key'>销售类型</text>
<view class='baseitem_value' bindtap="powerDrawer" data-statu="open" data-x='销售类型' data-item='{{which}}'>
{{saletype[saletypeIndex].Name}}
</view>
</view>
<view class='baseitem'>
<text class='baseitem_key'>送货地址</text>
<input class='baseitem_value' bindinput='getAddrs' placeholder='请输入送货地址' placeholder-style='color:rgb(202, 202, 202)'></input>
</view>
<!-- <button class='submit' catchtap='submitForm'>提交</button> -->
</scroll-view>
<view class="drawer_screen" bindtap="powerDrawer" data-item='{{which}}' data-statu="close" wx:if="{{showModalStatus}}"></view>
<!--content-->
<!--使用animation属性指定需要执行的动画-->
<view animation="{{animationData}}" data-item='{{which}}' class="drawer_box" wx:if="{{showModalStatus}}">
<!--drawer content-->
<view class='top' data-item='{{which}}'>
<input data-item='{{which}}' class="sousuo" bindinput="select" placeholder='请输入搜索'>
</input>
</view>
<view class="drawer_content">
<block wx:for="{{currency}}" wx:key="item" wx:for-index="idx">
<view class="grid1" data-item='{{which}}' catchtap='itemclick' data-idx='{{idx}}' data-ID="{{item.ID}}" data-Name='{{item.Name}}'>
<text class='text3'>{{item.Name}}</text>
</view>
</block>
</view>
<view class="btn_ok" bindtap="powerDrawer" data-statu="close">取消</view>
</view>
</swiper-item>
<!-- 订单详细 -->
<swiper-item class="swiper-items2">
<scroll-view scroll-x="false" scroll-y="true" class='scroll-views'>
<view class='main-body'>
<block wx:for="{{obj}}" wx:key="item" wx:for-index="idx">
<view class='itemView'>
<view class='baseitem'>
<text class='baseitem_key2'>存货名称</text>
<view class='baseitem_value2'>
{{obj[idx].Goods_Name}}
</view>
</view>
<view class='twogroup'>
<view class='baseitem'>
<text class='baseitem_key1'>报货数量</text>
<input class='baseitem_value1' bindinput='getGoodsNum' placeholder='请输入报货数量' type='digit' placeholder-style='color:rgb(202, 202, 202)' data-idx='{{idx}}' value='{{obj[idx].goodsNum}}'></input>
</view>
<view class='baseitem'>
<text class='baseitem_key1' space='ensp'>辅 数 量</text>
<input class='baseitem_value1' bindinput='getSecondNum' placeholder='请输入辅数量' type='digit' placeholder-style='color:rgb(202, 202, 202)' data-idx='{{idx}}' value='{{obj[idx].goodsSecondNum}}'></input>
</view>
</view>
<view class='twogroup'>
<view class='baseitem'>
<text class='baseitem_key1' space='emsp'>单 价</text>
<input class='baseitem_value1' type='digit' bindinput='getPrice' placeholder='请输入单价' placeholder-style='color:rgb(202, 202, 202)' data-idx='{{idx}}' value='{{obj[idx].Price}}'></input>
</view>
<view class='baseitem'>
<text class='baseitem_key1'>政策单价</text>
<text class='baseitem_value1' data-idx='{{idx}}'>{{obj[idx].PolicyPrice}}</text>
</view>
</view>
<view class='delete' catchtap='deleteItem' data-idx='{{idx}}'>删除</view>
</view>
</block>
<view class='add' catchtap='add'>
选择存货
<!-- <image class="ico" src="/imgs/tianjia.png"></image> -->
</view>
</view>
<!-- <template name='fodder'>
</template> -->
<button class='submit' catchtap='submitForm'>提交</button>
</scroll-view>
<view class="drawer_screen" bindtap="powerDrawer1" data-statu="close" wx:if="{{showModalStatus1}}"></view>
<!--content-->
<!--使用animation属性指定需要执行的动画-->
<view animation="{{animationData}}" class="drawer_box" wx:if="{{showModalStatus1}}">
<!--drawer content-->
<view class='top'>
<input input class="sousuo" bindinput="select1" placeholder='请输入搜索'>
</input>
</view>
<view class="drawer_content">
<block wx:for="{{goods}}" wx:key="item">
<view class="grid1" catchtap='itemclick1' data-idx='{{idx}}' data-Name='{{item.Goods_Name}}' data-policyprice='{{item.PolicyPrice}}' data-data='{{item}}'>
<text class='text3'>{{item.Goods_Name}}</text>
</view>
</block>
</view>
<view class="btn_ok" bindtap="powerDrawer1" data-statu="close">取消</view>
</view>
</swiper-item>
</swiper>

+ 220
- 0
pages/saleForecastList/newBill1/newBill.wxss View File

@ -0,0 +1,220 @@
/* pages/saleForecastList/saleForecastCreatNew/saleForecastCreatNew.wxss */
page {
background: rgb(240, 239, 245);
height: calc(100%-10px);
}
.swiper-tab {
/* height: 30px; */
margin: 10px 20px;
text-align: center;
line-height: 30px;
background: white;
display: flex;
flex-direction: row;
border-radius: 5px;
border: 1px solid#2E8CF5;
overflow: hidden;
}
.swiper-tab-list {
height: 100%;
width: 50%;
font-size: 30rpx;
color: #777;
}
.on {
background-color:#2E8CF5 ;
color: white;
}
.swiper-box {
display: block;
width: 100%;
overflow: hidden;
margin-top: 3px;
}
.swiper-items1 {
height: 100%;
/* padding-top: 3%; */
}
.swiper-items2 {
height: 100%;
}
.scroll-views {
height: 100%;
}
.baseitem {
background: #fff;
width: 100%;
border-bottom: 0.1px solid #dbdbdb;
display: flex;
flex-direction: row;
align-items: center;
padding-top: 20rpx;
padding-bottom: 20rpx;
font-size: 30rpx;
}
.baseitem_key {
color: #666;
width: 40%;
margin-left: 20rpx;
}
.baseitem_value {
color: rgb(48, 48, 48);
margin-left: 20rpx;
margin-right: 20rpx;
width: 160%;
text-align: right;
}
.baseitem_key2 {
color: #666;
width: 40%;
margin-left: 20rpx;
}
.baseitem_value2 {
color: rgb(48, 48, 48);
margin-left: 20rpx;
margin-right: 20rpx;
width: 160%;
text-align: right;
}
.baseitem_key1 {
color: #666;
width: 100%;
margin-left: 20rpx;
}
.baseitem_value1 {
color: rgb(48, 48, 48);
margin-left: 20rpx;
margin-right: 20rpx;
width: 100%;
text-align: right;
}
::-webkit-scrollbar {
width: 0;
height: 0;
color: transparent;
}
.add {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
border-left: none;
background: #fff;
width: 100%;
margin-top: 20rpx;
border-top: 0.5px solid #e0e0e0;
border-bottom: 0.5px solid #e0e0e0;
padding-top: 20rpx;
padding-bottom: 20rpx;
}
.ico {
height: 42rpx;
width: 42rpx;
}
.delete {
width: 100%;
padding-top: 20rpx;
padding-bottom: 20rpx;
color: red;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
background: #fff;
font-size: 30rpx;
}
.itemView {
margin-top: 20rpx;
}
.submit {
margin-top: 50rpx;
margin-bottom: 30rpx;
}
.drawer_screen {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
z-index: 1000;
background: #000;
opacity: 0.5;
overflow: hidden;
}
.sousuo {
/* margin-right: 10%;
margin-left: 10%; */
text-align: center;
background: #d6d8da;
height: 40px;
font-size: 28rpx;
}
.drawer_content {
height: 500rpx;
overflow-y: scroll; /*超出父盒子高度可滚动*/
}
.drawer_box {
width: 650rpx;
overflow: hidden;
position: fixed;
top: 50%;
left: 0;
z-index: 1001;
background: #fafafa;
margin: -150px 50rpx 0 50rpx;
border-radius: 3px;
}
.btn_ok {
padding: 10px;
font: 20px "microsoft yahei";
text-align: center;
border-top: 1px solid #e8e8ea;
color: #2E8CF5;
}
.top {
height: 20%;
justify-content: center;
align-items: center;
}
.grid1 {
width: 100%;
border-bottom: 1px solid #c3c3c3;
/* padding-top: 5px;
padding-bottom: 10px; */
padding-top: 16rpx;
padding-bottom: 16rpx;
text-align: center;
}
.text3 {
font-size: 18px;
color: rgb(48, 48, 48);
}

Loading…
Cancel
Save