first commit
This commit is contained in:
24
pages/deal/deal.acss
Normal file
24
pages/deal/deal.acss
Normal file
@@ -0,0 +1,24 @@
|
||||
navigator {
|
||||
background-color: rgb(74, 110, 207);
|
||||
color: #fff;
|
||||
margin-bottom: 10rpx;
|
||||
padding: 60rpx;
|
||||
text-align: center;
|
||||
/* 圆角 */
|
||||
border-radius: 8px;
|
||||
background: linear-gradient(45deg, #007BFF, #00BFFF);
|
||||
}
|
||||
|
||||
.navigator-hover {
|
||||
background-color: lightskyblue;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.nav-button:hover {
|
||||
transform: translateY(-3px);
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.navigator-hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
5
pages/deal/deal.axml
Normal file
5
pages/deal/deal.axml
Normal file
@@ -0,0 +1,5 @@
|
||||
<view class="nav-container">
|
||||
<navigator open-type="navigate" url="/pages/deal/saleOrder/saleOrder" hover-class="navigator-hover" class="nav-button">销售</navigator>
|
||||
<bluetooth-component/>
|
||||
</view>
|
||||
|
||||
38
pages/deal/deal.js
Normal file
38
pages/deal/deal.js
Normal file
@@ -0,0 +1,38 @@
|
||||
Page({
|
||||
data: {
|
||||
|
||||
},
|
||||
onLoad(query) {
|
||||
// 页面加载
|
||||
console.info(`Page onLoad with query: ${JSON.stringify(query)}`);
|
||||
},
|
||||
onReady() {
|
||||
// 页面加载完成
|
||||
},
|
||||
onShow() {
|
||||
// 页面显示
|
||||
},
|
||||
onHide() {
|
||||
// 页面隐藏
|
||||
},
|
||||
onUnload() {
|
||||
// 页面被关闭
|
||||
},
|
||||
onTitleClick() {
|
||||
// 标题被点击
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
// 页面被下拉
|
||||
},
|
||||
onReachBottom() {
|
||||
// 页面被拉到底部
|
||||
},
|
||||
onShareAppMessage() {
|
||||
// 返回自定义分享信息
|
||||
return {
|
||||
title: 'My App',
|
||||
desc: 'My App description',
|
||||
path: 'pages/index/index',
|
||||
};
|
||||
},
|
||||
});
|
||||
3
pages/deal/deal.json
Normal file
3
pages/deal/deal.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
||||
15
pages/deal/saleOrder/kanban/from/printTag/printTag.acss
Normal file
15
pages/deal/saleOrder/kanban/from/printTag/printTag.acss
Normal file
@@ -0,0 +1,15 @@
|
||||
.checkbox {
|
||||
display: block;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.order-item {
|
||||
/* 卡片边框颜色 */
|
||||
border: 1px solid #161515;
|
||||
padding: 10px;
|
||||
margin: 10px;
|
||||
cursor: pointer;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
background-color: #ffffff;
|
||||
}
|
||||
20
pages/deal/saleOrder/kanban/from/printTag/printTag.axml
Normal file
20
pages/deal/saleOrder/kanban/from/printTag/printTag.axml
Normal file
@@ -0,0 +1,20 @@
|
||||
<view class="page">
|
||||
<view class="page-description">多项选择器</view>
|
||||
<form onSubmit="onSubmit" onReset="onReset">
|
||||
<view class="page-section">
|
||||
<view class="page-section-title">选择你用过的框架:</view>
|
||||
<view class="page-section-demo">
|
||||
<checkbox-group onChange="onChange" name="libs">
|
||||
<label class="checkbox order-item" a:for="{{items}}" key="label-{{index}}">
|
||||
<checkbox value="{{item.id}}" checked="{{item.checked}}" disabled="{{item.disabled}}" />
|
||||
<text class="checkbox-text">货号:{{item.name}} 色号:{{item.color_id_2[1]}} 细码:{{item.fineCode3Names}}</text>
|
||||
</label>
|
||||
</checkbox-group>
|
||||
</view>
|
||||
<view class="page-section-btns">
|
||||
<view><button type="ghost" size="mini">重置</button></view>
|
||||
<view><button type="primary" size="mini" formType="submit">提交</button></view>
|
||||
</view>
|
||||
</view>
|
||||
</form>
|
||||
|
||||
113
pages/deal/saleOrder/kanban/from/printTag/printTag.js
Normal file
113
pages/deal/saleOrder/kanban/from/printTag/printTag.js
Normal file
@@ -0,0 +1,113 @@
|
||||
Page({
|
||||
data: {
|
||||
items: []
|
||||
},
|
||||
onLoad(query) {
|
||||
console.info(`Page onLoad with query: ${JSON.stringify(query)}`);
|
||||
dd.getStorage({
|
||||
key: 'saleOrderlines',
|
||||
success: (res) => {
|
||||
const selectedOrder = res.data;
|
||||
const orderLinesoptions = selectedOrder.orderLines;
|
||||
this.setData({
|
||||
items: orderLinesoptions
|
||||
});
|
||||
console.log('从本地存储获取到的数据:', selectedOrder);
|
||||
},
|
||||
fail: (err) => {
|
||||
console.error('从本地存储获取数据失败:', err);
|
||||
}
|
||||
});
|
||||
},
|
||||
onReady() {
|
||||
// 页面加载完成
|
||||
},
|
||||
onShow() {
|
||||
// 页面显示
|
||||
},
|
||||
onHide() {
|
||||
// 页面隐藏
|
||||
},
|
||||
onUnload() {
|
||||
// 页面被关闭
|
||||
},
|
||||
onTitleClick() {
|
||||
// 标题被点击
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
// 页面被下拉
|
||||
},
|
||||
onReachBottom() {
|
||||
// 页面被拉到底部
|
||||
},
|
||||
onShareAppMessage() {
|
||||
return {
|
||||
title: 'My App',
|
||||
desc: 'My App description',
|
||||
path: 'pages/index/index'
|
||||
};
|
||||
},
|
||||
onSubmit(e) {
|
||||
console.log('onSubmit', e);
|
||||
const selectedIds = e.detail.value.libs.map(Number); // 将 selectedIds 中的元素转换为数字类型
|
||||
console.log('选中的 ID:', selectedIds);
|
||||
|
||||
if (selectedIds.length === 0) {
|
||||
console.log('未选中任何 ID,清空本地缓存');
|
||||
dd.removeStorage({
|
||||
key: 'selectedSaleOrderLines',
|
||||
success: () => {
|
||||
console.log('本地缓存 selectedSaleOrderLines 已清空');
|
||||
},
|
||||
fail: (err) => {
|
||||
console.error('清空本地缓存 selectedSaleOrderLines 失败:', err);
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
const saleOrderLines = this.data.items;
|
||||
console.log('所有销售订单行数据:', saleOrderLines);
|
||||
|
||||
const selectedItems = saleOrderLines.filter(line => selectedIds.includes(line.id));
|
||||
const selectedSaleOrderLines = {
|
||||
selectedItems
|
||||
};
|
||||
console.log('选中的销售订单行记录:', selectedItems);
|
||||
|
||||
dd.setStorage({
|
||||
key: 'selectedSaleOrderLines',
|
||||
data: selectedSaleOrderLines,
|
||||
success: () => {
|
||||
console.log('选中的销售订单行记录已保存到本地存储:', selectedItems);
|
||||
},
|
||||
fail: (err) => {
|
||||
console.error('保存选中的销售订单行记录到本地存储失败:', err);
|
||||
}
|
||||
});
|
||||
dd.reLaunch({
|
||||
url: "/pages/deal/saleOrder/kanban/from/printTag/printTemplate/printTemplate",
|
||||
success () {
|
||||
// 导航成功的回调函数
|
||||
console.log("导航成功");
|
||||
},
|
||||
fail: function (err) {
|
||||
// 导航失败的回调函数
|
||||
console.error("导航失败", err);
|
||||
},
|
||||
complete: function () {
|
||||
// 导航结束的回调函数(无论成功或失败都会执行)
|
||||
console.log("导航操作结束");
|
||||
}
|
||||
});
|
||||
// my.alert({
|
||||
// content: `你选择的框架是 ${selectedIds.join(', ')}`,
|
||||
// });
|
||||
},
|
||||
onReset(e) {
|
||||
console.log('onReset', e);
|
||||
},
|
||||
onChange(e) {
|
||||
console.log(e);
|
||||
}
|
||||
});
|
||||
3
pages/deal/saleOrder/kanban/from/printTag/printTag.json
Normal file
3
pages/deal/saleOrder/kanban/from/printTag/printTag.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
<view>
|
||||
|
||||
</view>
|
||||
@@ -0,0 +1,54 @@
|
||||
Page({
|
||||
data: {
|
||||
switch1: '',
|
||||
switch2: '',
|
||||
switch3: '',
|
||||
switch4: '',
|
||||
iconType: [
|
||||
'cancel',
|
||||
],
|
||||
// 'success',连接成功打勾
|
||||
// 'info', 感叹号
|
||||
// 'warn', 黄色感叹号
|
||||
// 'waiting',时钟
|
||||
// 'clear',打叉
|
||||
// 'success_no_circle',打勾
|
||||
// 'download',下载
|
||||
// 'cancel',打叉
|
||||
// 'search',搜索
|
||||
array: ['TSPL', 'ZPL', 'CPCL', 'ESC/POS'],
|
||||
value: {},
|
||||
printdata: {},
|
||||
blueoptions: [],
|
||||
deviceId: '',
|
||||
connected: false,
|
||||
devices: [],
|
||||
showDeviceList: false,
|
||||
currentDeviceServices: [],
|
||||
currentDeviceCharacteristics: [],
|
||||
hasLocation: false,
|
||||
location: {},
|
||||
deviceCount: 0,
|
||||
targetDeviceId: 'DC:0D:30:63:9E:0E',
|
||||
isSearching: true,
|
||||
printFormat: 'TSPL',
|
||||
maxAllowedLength: 1024,
|
||||
delayTime: 5000, // 默认延迟 5 秒,单位:毫秒
|
||||
paperSize: {
|
||||
width: 80, // 默认宽度 80mm
|
||||
height: 60 // 默认高度 60mm
|
||||
},
|
||||
index: 0 //指令集默认选择
|
||||
},
|
||||
|
||||
onLoad() {
|
||||
const selectedSaleOrderLines = dd.getStorageSync({
|
||||
key: 'selectedSaleOrderLines'
|
||||
}).data;
|
||||
const printdata = selectedSaleOrderLines || {};
|
||||
this.setData({
|
||||
printdata
|
||||
});
|
||||
},
|
||||
|
||||
});
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
.cart-bottom {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background-color: #fff;
|
||||
padding: 10px;
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
|
||||
.cart-info {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.confirm-button {
|
||||
background-color: #ff5722;
|
||||
color: #fff;
|
||||
padding: 20px 50px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
<view>
|
||||
<view>
|
||||
<rich-text nodes="{{nodes}}" onTap="tap"></rich-text>
|
||||
</view>
|
||||
|
||||
<view class="cart-bottom">
|
||||
<view class="cart-info">
|
||||
</view>
|
||||
<navigator
|
||||
open-type="navigate"
|
||||
url="/pages/deal/saleOrder/kanban/saleOrderKanban"
|
||||
class="confirm-button"
|
||||
>
|
||||
返回
|
||||
</navigator>
|
||||
<navigator
|
||||
open-type="navigate"
|
||||
url="/pages/deal/saleOrder/kanban/from/printTag/printTemplate/bluetooth/bluetooth"
|
||||
class="confirm-button"
|
||||
>
|
||||
确认
|
||||
</navigator>
|
||||
</view>
|
||||
</view>
|
||||
@@ -0,0 +1,55 @@
|
||||
|
||||
|
||||
Page({
|
||||
data: {
|
||||
nodes: [{
|
||||
name: 'div',
|
||||
attrs: {
|
||||
class: 'wrapper',
|
||||
style: 'color: orange;',
|
||||
},
|
||||
children: [{
|
||||
type: 'text',
|
||||
text: 'Hello World! 拖拉设计打印模板待开发',
|
||||
}],
|
||||
}],
|
||||
},
|
||||
onLoad(query) {
|
||||
// 页面加载
|
||||
console.info(`Page onLoad with query: ${JSON.stringify(query)}`);
|
||||
},
|
||||
onReady() {
|
||||
// 页面加载完成
|
||||
},
|
||||
onShow() {
|
||||
// 页面显示
|
||||
},
|
||||
onHide() {
|
||||
// 页面隐藏
|
||||
},
|
||||
onUnload() {
|
||||
// 页面被关闭
|
||||
},
|
||||
onTitleClick() {
|
||||
// 标题被点击
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
// 页面被下拉
|
||||
},
|
||||
onReachBottom() {
|
||||
// 页面被拉到底部
|
||||
},
|
||||
onShareAppMessage() {
|
||||
// 返回自定义分享信息
|
||||
return {
|
||||
title: 'My App',
|
||||
desc: 'My App description',
|
||||
path: 'pages/index/index',
|
||||
};
|
||||
},
|
||||
//
|
||||
tap() {
|
||||
console.log('tap');
|
||||
},
|
||||
//
|
||||
});
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
||||
26
pages/deal/saleOrder/kanban/from/saleOrderFrom.acss
Normal file
26
pages/deal/saleOrder/kanban/from/saleOrderFrom.acss
Normal file
@@ -0,0 +1,26 @@
|
||||
.cart-bottom {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background-color: #fff;
|
||||
padding: 10px;
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
|
||||
.cart-info {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.confirm-button {
|
||||
background-color: #ff5722;
|
||||
color: #fff;
|
||||
padding: 20px 50px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
203
pages/deal/saleOrder/kanban/from/saleOrderFrom.axml
Normal file
203
pages/deal/saleOrder/kanban/from/saleOrderFrom.axml
Normal file
@@ -0,0 +1,203 @@
|
||||
<!-- components/BasicInfoTab/BasicInfoTab.aml -->
|
||||
<view>
|
||||
<!-- -->
|
||||
<view class="page-section">
|
||||
<picker >
|
||||
<view class="form-row">
|
||||
<view class="form-row-label">客户</view>
|
||||
<input
|
||||
name="databaseName"
|
||||
class="form-row-content"
|
||||
value="{{selectedOrder.partner_id[1]}}"
|
||||
placeholder="预留位置等待开发修改销售单数据"
|
||||
/>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- -->
|
||||
<!-- -->
|
||||
<view class="page-section">
|
||||
<picker >
|
||||
<view class="form-row">
|
||||
<view class="form-row-label">地址</view>
|
||||
<input
|
||||
name="databaseName"
|
||||
class="form-row-content"
|
||||
value="{{}}"
|
||||
placeholder="预留位置等待开发修改销售单数据"
|
||||
/>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- -->
|
||||
<!-- -->
|
||||
<view class="page-section">
|
||||
<picker >
|
||||
<view class="form-row">
|
||||
<view class="form-row-label">销售日期</view>
|
||||
<input
|
||||
name="databaseName"
|
||||
class="form-row-content"
|
||||
value="{{selectedOrder.date_order}}"
|
||||
placeholder="预留位置等待开发修改销售单数据"
|
||||
/>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- -->
|
||||
<!-- -->
|
||||
<view class="page-section">
|
||||
<picker >
|
||||
<view class="form-row">
|
||||
<view class="form-row-label">计划收款日期</view>
|
||||
<input
|
||||
name="databaseName"
|
||||
class="form-row-content"
|
||||
value="{{}}"
|
||||
placeholder="预留位置等待开发修改销售单数据"
|
||||
/>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- -->
|
||||
<!-- -->
|
||||
<view class="page-section">
|
||||
<picker >
|
||||
<view class="form-row">
|
||||
<view class="form-row-label">送货日期</view>
|
||||
<input
|
||||
name="databaseName"
|
||||
class="form-row-content"
|
||||
value="{{}}"
|
||||
placeholder="预留位置等待开发修改销售单数据"
|
||||
/>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- -->
|
||||
<!-- -->
|
||||
<view class="page-section">
|
||||
<picker >
|
||||
<view class="form-row">
|
||||
<view class="form-row-label">默认仓库</view>
|
||||
<input
|
||||
name="databaseName"
|
||||
class="form-row-content"
|
||||
value="{{}}"
|
||||
placeholder="预留位置等待开发修改销售单数据"
|
||||
/>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- -->
|
||||
<!-- -->
|
||||
<view class="page-section">
|
||||
<picker >
|
||||
<view class="form-row">
|
||||
<view class="form-row-label">业务员</view>
|
||||
<input
|
||||
name="databaseName"
|
||||
class="form-row-content"
|
||||
value="{{selectedOrder.user_id[1]}}"
|
||||
placeholder="预留位置等待开发修改销售单数据"
|
||||
/>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- -->
|
||||
<!-- -->
|
||||
<view class="page-section">
|
||||
<picker >
|
||||
<view class="form-row">
|
||||
<view class="form-row-label">销售单号</view>
|
||||
<input
|
||||
name="databaseName"
|
||||
class="form-row-content"
|
||||
value="{{selectedOrder.name}}"
|
||||
placeholder="预留位置等待开发修改销售单数据"
|
||||
/>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- -->
|
||||
<view>
|
||||
<tag>税率</tag>
|
||||
</view>
|
||||
<!-- -->
|
||||
<view class="page-section">
|
||||
<picker >
|
||||
<view class="form-row">
|
||||
<view class="form-row-label">订单金额</view>
|
||||
<input
|
||||
name="databaseName"
|
||||
class="form-row-content"
|
||||
value="{{selectedOrder.orde_ddje}}"
|
||||
placeholder="预留位置等待开发修改销售单数据"
|
||||
/>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- -->
|
||||
<!-- -->
|
||||
<view class="page-section">
|
||||
<picker >
|
||||
<view class="form-row">
|
||||
<view class="form-row-label">优惠金额</view>
|
||||
<input
|
||||
name="databaseName"
|
||||
class="form-row-content"
|
||||
value="{{}}"
|
||||
placeholder="预留位置等待开发修改销售单数据"
|
||||
/>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- -->
|
||||
<!-- -->
|
||||
<view class="page-section">
|
||||
<picker >
|
||||
<view class="form-row">
|
||||
<view class="form-row-label">合同金额</view>
|
||||
<input
|
||||
name="databaseName"
|
||||
class="form-row-content"
|
||||
value="{{}}"
|
||||
placeholder="预留位置等待开发修改销售单数据"
|
||||
/>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- -->
|
||||
<!-- -->
|
||||
<view class="page-section">
|
||||
<picker >
|
||||
<view class="form-row">
|
||||
<view class="form-row-label">非产品费用</view>
|
||||
<input
|
||||
name="databaseName"
|
||||
class="form-row-content"
|
||||
value="{{}}"
|
||||
placeholder="预留位置等待开发修改销售单数据"
|
||||
/>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- -->
|
||||
<view class="cart-bottom">
|
||||
<view class="cart-info">
|
||||
</view>
|
||||
<navigator
|
||||
open-type="navigate"
|
||||
url="/pages/deal/saleOrder/kanban/saleOrderKanban"
|
||||
class="confirm-button"
|
||||
>
|
||||
确认
|
||||
</navigator>
|
||||
<navigator
|
||||
open-type="navigate"
|
||||
url="/pages/deal/saleOrder/kanban/from/printTag/printTag"
|
||||
class="confirm-button"
|
||||
>
|
||||
打印
|
||||
</navigator>
|
||||
</view>
|
||||
55
pages/deal/saleOrder/kanban/from/saleOrderFrom.js
Normal file
55
pages/deal/saleOrder/kanban/from/saleOrderFrom.js
Normal file
@@ -0,0 +1,55 @@
|
||||
Page({
|
||||
data: {
|
||||
selectedOrder:{}
|
||||
},
|
||||
onLoad(query) {
|
||||
// 页面加载
|
||||
console.info(`Page onLoad with query: ${JSON.stringify(query)}`);
|
||||
const objectKey = query.objectKey;
|
||||
if (objectKey) {
|
||||
dd.getStorage({
|
||||
key: objectKey,
|
||||
success: (res) => {
|
||||
const selectedOrder = res.data;
|
||||
this.setData({
|
||||
selectedOrder
|
||||
});
|
||||
console.log('从本地存储获取到的数据:', selectedOrder);
|
||||
// 在这里可以对 selectedOrder 进行进一步处理
|
||||
},
|
||||
fail: (err) => {
|
||||
console.error('从本地存储获取数据失败:', err);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
onReady() {
|
||||
// 页面加载完成
|
||||
},
|
||||
onShow() {
|
||||
// 页面显示
|
||||
},
|
||||
onHide() {
|
||||
// 页面隐藏
|
||||
},
|
||||
onUnload() {
|
||||
// 页面被关闭
|
||||
},
|
||||
onTitleClick() {
|
||||
// 标题被点击
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
// 页面被下拉
|
||||
},
|
||||
onReachBottom() {
|
||||
// 页面被拉到底部
|
||||
},
|
||||
onShareAppMessage() {
|
||||
// 返回自定义分享信息
|
||||
return {
|
||||
title: 'My App',
|
||||
desc: 'My App description',
|
||||
path: 'pages/index/index',
|
||||
};
|
||||
},
|
||||
});
|
||||
3
pages/deal/saleOrder/kanban/from/saleOrderFrom.json
Normal file
3
pages/deal/saleOrder/kanban/from/saleOrderFrom.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
||||
83
pages/deal/saleOrder/kanban/saleOrderKanban.acss
Normal file
83
pages/deal/saleOrder/kanban/saleOrderKanban.acss
Normal file
@@ -0,0 +1,83 @@
|
||||
|
||||
.list-header {
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
padding: 10px;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
.order-item {
|
||||
/* 卡片边框颜色 */
|
||||
border: 1px solid #161515;
|
||||
padding: 10px;
|
||||
margin: 10px;
|
||||
cursor: pointer;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
.order-title {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
color: #dbe45a;
|
||||
}
|
||||
|
||||
.order-brief {
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.order-extra {
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.order-details {
|
||||
font-size: 14px;
|
||||
margin-top: 5px;
|
||||
color: #444444;
|
||||
}
|
||||
|
||||
.order-line-item {
|
||||
border: 1px solid #eee;
|
||||
padding: 5px;
|
||||
margin-top: 5px;
|
||||
border-radius: 3px;
|
||||
/* 销售订单行背景色 */
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.pagination-button {
|
||||
padding: 8px 16px;
|
||||
margin: 0 10px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
background-color: #007aff;
|
||||
color: #ffffff;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
|
||||
.pagination-button:hover {
|
||||
background-color: #0056b3;
|
||||
}
|
||||
|
||||
.disabled-button {
|
||||
background-color: #cccccc;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.pagination-text {
|
||||
font-size: 14px;
|
||||
color: #333333;
|
||||
margin: 0 10px;
|
||||
}
|
||||
34
pages/deal/saleOrder/kanban/saleOrderKanban.axml
Normal file
34
pages/deal/saleOrder/kanban/saleOrderKanban.axml
Normal file
@@ -0,0 +1,34 @@
|
||||
<view>
|
||||
<progress percent="{{isloading}}" active style="background-color: #e0e0e0; height: 10px; border-radius: 5px;" />
|
||||
<view
|
||||
a:for="{{combinedOrders}}"
|
||||
a:key="id"
|
||||
class="order-item"
|
||||
onTap="handleTap"
|
||||
data-info="{{item.id}}"
|
||||
>
|
||||
<view class="order-extra">{{item.date_order || '无订单日期'}}</view>
|
||||
<view class="order-details order-title">{{item.name || '无订单名称'}}</view>
|
||||
<view class="order-extra">总金额:{{item.amount_total || '无'}}</view>
|
||||
<view class="order-details">{{item.partner_id[1] || '无客户名称'}}</view>
|
||||
<view a:if="{{item.orderLines.length > 0}}">
|
||||
<view a:for="{{item.orderLines}}" a:key="id" class="order-line-item">
|
||||
<view class="order-extra">数量: {{item.product_uom_qty || '无数量'}}</view>
|
||||
<view class="order-details order-title">货号: {{item.product_id? item.product_id[1] : '无产品名称'}}</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
<view class="pagination">
|
||||
<button disabled="{{currentPage === 1}}" onTap="handlePreviousPage" class="pagination-button disabled-button">上一页</button>
|
||||
<text class="pagination-text">第 {{currentPage}} 页 / 共 {{totalRecords / pageSize}} 页</text>
|
||||
<button
|
||||
disabled="{{isLoading || currentPage === Math.ceil(totalRecords / pageSize)}}"
|
||||
onTap="handleNextPage"
|
||||
class="pagination-button"
|
||||
>
|
||||
下一页
|
||||
</button>
|
||||
</view>
|
||||
</view>
|
||||
307
pages/deal/saleOrder/kanban/saleOrderKanban.js
Normal file
307
pages/deal/saleOrder/kanban/saleOrderKanban.js
Normal file
@@ -0,0 +1,307 @@
|
||||
import jsonrpcFunc from '../../../ulti/jsonrpc'
|
||||
|
||||
Page({
|
||||
data: {
|
||||
loginInfo: '', //权限验证信息
|
||||
combinedOrders: [], //销售数据汇总
|
||||
currentPage: 1, //当前第几页
|
||||
pageSize: 10, //一页多少数据
|
||||
totalRecords: 0, //整个模型目前有多少条记录
|
||||
orderlineIDs: [], //销售订单行数据
|
||||
isloading: 50 //加载进度条百分比
|
||||
},
|
||||
onLoad(query) {
|
||||
// 页面加载
|
||||
// console.info(`Page onLoad with query: ${JSON.stringify(query)}`);
|
||||
const loginInfo = dd.getStorageSync({
|
||||
key: 'loginInfo'
|
||||
}).data;
|
||||
if (loginInfo && loginInfo.apiurl && loginInfo.databaseName && loginInfo.username && loginInfo.password && loginInfo.uid > 0) {
|
||||
this.setData({
|
||||
loginInfo
|
||||
});
|
||||
// console.log('销售页得到的本地信息', loginInfo);
|
||||
//执行获取销售订单第一页数据分页第一页默认
|
||||
this.fetchData(1);
|
||||
} else {
|
||||
// console.log('本地缓存中未获取到登录信息');
|
||||
}
|
||||
},
|
||||
onReady() {
|
||||
// 页面加载完成
|
||||
},
|
||||
onShow() {
|
||||
// 页面显示
|
||||
},
|
||||
onHide() {
|
||||
// 页面隐藏
|
||||
},
|
||||
onUnload() {
|
||||
// 页面被关闭
|
||||
},
|
||||
onTitleClick() {
|
||||
// 标题被点击
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
// 页面被下拉
|
||||
},
|
||||
onReachBottom() {
|
||||
// 页面被拉到底部
|
||||
},
|
||||
onShareAppMessage() {
|
||||
// 返回自定义分享信息
|
||||
return {
|
||||
title: 'My App',
|
||||
desc: 'My App description',
|
||||
path: 'pages/index/index',
|
||||
};
|
||||
},
|
||||
fetchData(page) {
|
||||
const {
|
||||
loginInfo,
|
||||
pageSize
|
||||
} = this.data;
|
||||
const offset = (page - 1) * pageSize;
|
||||
// 调用 search_count 方法获取总记录数
|
||||
const saleOrderCountData = {
|
||||
"jsonrpc": "2.0",
|
||||
"method": "call",
|
||||
"id": 2,
|
||||
"params": {
|
||||
"service": "object",
|
||||
"method": "execute_kw",
|
||||
"args": [
|
||||
loginInfo.databaseName,
|
||||
loginInfo.uid,
|
||||
loginInfo.password,
|
||||
'sale.order',
|
||||
"search_count",
|
||||
[
|
||||
[]
|
||||
]
|
||||
]
|
||||
}
|
||||
};
|
||||
jsonrpcFunc(loginInfo, saleOrderCountData)
|
||||
.then((count) => {
|
||||
this.setData({
|
||||
totalRecords: count
|
||||
});
|
||||
// console.log('销售订单总记录数:', count);
|
||||
|
||||
const saleOrderData = {
|
||||
"jsonrpc": "2.0",
|
||||
"method": "call",
|
||||
"id": 2,
|
||||
"params": {
|
||||
"service": "object",
|
||||
"method": "execute_kw",
|
||||
"args": [
|
||||
loginInfo.databaseName,
|
||||
loginInfo.uid,
|
||||
loginInfo.password,
|
||||
'sale.order',
|
||||
"search_read",
|
||||
[],
|
||||
{
|
||||
fields: [],
|
||||
"limit": pageSize,
|
||||
"offset": offset,
|
||||
"order": "id DESC"
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
return jsonrpcFunc(loginInfo, saleOrderData);
|
||||
})
|
||||
.then((salesOrderData) => {
|
||||
this.setData({
|
||||
combinedOrders: salesOrderData.map(order => ({
|
||||
...order,
|
||||
orderLines: []
|
||||
}))
|
||||
});
|
||||
// console.log('销售订单数据:', salesOrderData);
|
||||
const orderlineIDs = [];
|
||||
salesOrderData.forEach(order => {
|
||||
if (order.order_line && Array.isArray(order.order_line)) {
|
||||
order.order_line.forEach(id => {
|
||||
if (!orderlineIDs.includes(id)) {
|
||||
orderlineIDs.push(id);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
this.setData({
|
||||
orderlineIDs
|
||||
});
|
||||
// console.log('获取到的销售订单行 ID:', orderlineIDs);
|
||||
if (orderlineIDs.length > 0) {
|
||||
const domain = orderlineIDs;
|
||||
const saleOrderLineData = {
|
||||
"jsonrpc": "2.0",
|
||||
"method": "call",
|
||||
"id": 2,
|
||||
"params": {
|
||||
"service": "object",
|
||||
"method": "execute_kw",
|
||||
"args": [
|
||||
loginInfo.databaseName,
|
||||
loginInfo.uid,
|
||||
loginInfo.password,
|
||||
'sale.order.line',
|
||||
"read",
|
||||
[domain],
|
||||
{
|
||||
fields: [],
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
// console.log('saleOrderLineData ', saleOrderLineData);
|
||||
return jsonrpcFunc(loginInfo, saleOrderLineData);
|
||||
}
|
||||
return null;
|
||||
})
|
||||
.then((salesOrderLineData) => {
|
||||
if (salesOrderLineData) {
|
||||
const {
|
||||
combinedOrders
|
||||
} = this.data;
|
||||
salesOrderLineData.forEach(orderLine => {
|
||||
const orderId = orderLine.order_id && orderLine.order_id[0];
|
||||
const targetOrder = combinedOrders.find(order => order.id === orderId);
|
||||
if (targetOrder) {
|
||||
targetOrder.orderLines.push(orderLine);
|
||||
}
|
||||
});
|
||||
this.setData({
|
||||
combinedOrders
|
||||
});
|
||||
// console.log('销售订单行数据:', salesOrderLineData);
|
||||
// console.log('合并后的订单数据:', combinedOrders);
|
||||
|
||||
// 提取所有 fineCode_3 的 ID
|
||||
const fineCode3Ids = [];
|
||||
combinedOrders.forEach(order => {
|
||||
order.orderLines.forEach(orderLine => {
|
||||
if (orderLine.fineCode_3 && Array.isArray(orderLine.fineCode_3)) {
|
||||
orderLine.fineCode_3.forEach(id => {
|
||||
if (!fineCode3Ids.includes(id)) {
|
||||
fineCode3Ids.push(id);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
if (fineCode3Ids.length > 0) {
|
||||
const fineCode3Data = {
|
||||
"jsonrpc": "2.0",
|
||||
"method": "call",
|
||||
"id": 2,
|
||||
"params": {
|
||||
"service": "object",
|
||||
"method": "execute_kw",
|
||||
"args": [
|
||||
loginInfo.databaseName,
|
||||
loginInfo.uid,
|
||||
loginInfo.password,
|
||||
// 这里需要替换为 fineCode_3 关联的模型名称
|
||||
'finecode_xima_l',
|
||||
"read",
|
||||
[fineCode3Ids],
|
||||
{
|
||||
fields: ['name']
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
return jsonrpcFunc(loginInfo, fineCode3Data);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
})
|
||||
.then((fineCode3Data) => {
|
||||
if (fineCode3Data) {
|
||||
const {
|
||||
combinedOrders
|
||||
} = this.data;
|
||||
const fineCode3NameMap = {};
|
||||
fineCode3Data.forEach(item => {
|
||||
fineCode3NameMap[item.id] = item.name;
|
||||
});
|
||||
combinedOrders.forEach(order => {
|
||||
order.orderLines.forEach(orderLine => {
|
||||
if (orderLine.fineCode_3 && Array.isArray(orderLine.fineCode_3)) {
|
||||
orderLine.fineCode3Names = orderLine.fineCode_3.map(id => fineCode3NameMap[id]);
|
||||
}
|
||||
});
|
||||
});
|
||||
this.setData({
|
||||
combinedOrders,
|
||||
isloading: 100
|
||||
});
|
||||
// console.log('合并后的订单数据(包含 fineCode_3 名称):', combinedOrders);
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('请求数据时出错:', error);
|
||||
});
|
||||
},
|
||||
//下一页逻辑
|
||||
handleNextPage() {
|
||||
const {
|
||||
currentPage,
|
||||
totalRecords,
|
||||
pageSize
|
||||
} = this.data;
|
||||
const totalPages = Math.ceil(totalRecords / pageSize);
|
||||
if (currentPage < totalPages) {
|
||||
this.setData({
|
||||
currentPage: currentPage + 1
|
||||
});
|
||||
this.fetchData(currentPage + 1);
|
||||
}
|
||||
},
|
||||
//
|
||||
//上一页逻辑
|
||||
handlePreviousPage() {
|
||||
const {
|
||||
currentPage
|
||||
} = this.data;
|
||||
if (currentPage > 1) {
|
||||
this.setData({
|
||||
currentPage: currentPage - 1
|
||||
});
|
||||
this.fetchData(currentPage - 1);
|
||||
}
|
||||
},
|
||||
//
|
||||
//点击卡片触发这条记录保存
|
||||
handleTap(e) {
|
||||
const orderId = e.currentTarget.dataset.info;
|
||||
const {
|
||||
combinedOrders
|
||||
} = this.data;
|
||||
const selectedOrder = combinedOrders.find(order => order.id === orderId);
|
||||
if (selectedOrder) {
|
||||
|
||||
const objectKey = `saleOrderlines`;
|
||||
// const objectKey = `order_${orderId}`;
|
||||
dd.setStorage({
|
||||
key: objectKey,
|
||||
data: selectedOrder,
|
||||
success: function () {
|
||||
dd.navigateTo({
|
||||
url: `/pages/deal/saleOrder/kanban/from/saleOrderFrom?objectKey=${objectKey}`
|
||||
});
|
||||
},
|
||||
fail: function (err) {
|
||||
console.error('存储数据到本地存储失败:', err);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
//
|
||||
});
|
||||
3
pages/deal/saleOrder/kanban/saleOrderKanban.json
Normal file
3
pages/deal/saleOrder/kanban/saleOrderKanban.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
||||
26
pages/deal/saleOrder/saleOrder.acss
Normal file
26
pages/deal/saleOrder/saleOrder.acss
Normal file
@@ -0,0 +1,26 @@
|
||||
.cart-bottom {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background-color: #fff;
|
||||
padding: 10px;
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
|
||||
.cart-info {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.confirm-button {
|
||||
background-color: #ff5722;
|
||||
color: #fff;
|
||||
padding: 20px 50px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
99
pages/deal/saleOrder/saleOrder.axml
Normal file
99
pages/deal/saleOrder/saleOrder.axml
Normal file
@@ -0,0 +1,99 @@
|
||||
<view>
|
||||
<!-- -->
|
||||
<view class="page-section">
|
||||
<picker >
|
||||
<view class="form-row">
|
||||
<view class="form-row-label">客户</view>
|
||||
<input
|
||||
name="databaseName"
|
||||
class="form-row-content"
|
||||
value="{{[]}}"
|
||||
placeholder="预留位置等待开发创建销售单"
|
||||
/>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- -->
|
||||
<!-- -->
|
||||
<view class="page-section">
|
||||
<picker >
|
||||
<view class="form-row">
|
||||
<view class="form-row-label">日期</view>
|
||||
<input
|
||||
name="databaseName"
|
||||
class="form-row-content"
|
||||
value="{{[]}}"
|
||||
placeholder="预留位置等待开发创建销售单"
|
||||
/>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- -->
|
||||
<!-- -->
|
||||
<view class="page-section">
|
||||
<picker >
|
||||
<view class="form-row">
|
||||
<view class="form-row-label">默认仓库</view>
|
||||
<input
|
||||
name="databaseName"
|
||||
class="form-row-content"
|
||||
value="{{[]}}"
|
||||
placeholder="预留位置等待开发创建销售单"
|
||||
/>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- -->
|
||||
<!-- -->
|
||||
<view class="page-section">
|
||||
<picker >
|
||||
<view class="form-row">
|
||||
<view class="form-row-label">业务员</view>
|
||||
<input
|
||||
name="databaseName"
|
||||
class="form-row-content"
|
||||
value="{{[]}}"
|
||||
placeholder="预留位置等待开发创建销售单"
|
||||
/>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- -->
|
||||
<view class="page-section">
|
||||
<view class="page-section-title"></view>
|
||||
<view class="page-section-demo">
|
||||
<checkbox-group>
|
||||
<view>
|
||||
<label>
|
||||
<checkbox value="客户货号" />
|
||||
<text> 客户货号</text>
|
||||
</label>
|
||||
<label>
|
||||
<checkbox value="进价" />
|
||||
<text> 进价</text>
|
||||
</label>
|
||||
<label>
|
||||
<checkbox value="+/-" />
|
||||
<text> +/-</text>
|
||||
</label>
|
||||
</view>
|
||||
</checkbox-group>
|
||||
</view>
|
||||
</view>
|
||||
<!-- -->
|
||||
<navigator open-type="redirect" hover-class="navigator-hover">产品列表</navigator>
|
||||
<!-- -->
|
||||
<!-- -->
|
||||
<view class="cart-bottom">
|
||||
<view class="cart-info">
|
||||
</view>
|
||||
<navigator
|
||||
open-type="navigate"
|
||||
url="/pages/deal/saleOrder/kanban/saleOrderKanban"
|
||||
class="confirm-button"
|
||||
>
|
||||
确认
|
||||
</navigator>
|
||||
</view>
|
||||
<!-- -->
|
||||
</view>
|
||||
38
pages/deal/saleOrder/saleOrder.js
Normal file
38
pages/deal/saleOrder/saleOrder.js
Normal file
@@ -0,0 +1,38 @@
|
||||
Page({
|
||||
data: {
|
||||
|
||||
},
|
||||
onLoad(query) {
|
||||
// 页面加载
|
||||
console.info(`Page onLoad with query: ${JSON.stringify(query)}`);
|
||||
},
|
||||
onReady() {
|
||||
// 页面加载完成
|
||||
},
|
||||
onShow() {
|
||||
// 页面显示
|
||||
},
|
||||
onHide() {
|
||||
// 页面隐藏
|
||||
},
|
||||
onUnload() {
|
||||
// 页面被关闭
|
||||
},
|
||||
onTitleClick() {
|
||||
// 标题被点击
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
// 页面被下拉
|
||||
},
|
||||
onReachBottom() {
|
||||
// 页面被拉到底部
|
||||
},
|
||||
onShareAppMessage() {
|
||||
// 返回自定义分享信息
|
||||
return {
|
||||
title: 'My App',
|
||||
desc: 'My App description',
|
||||
path: 'pages/index/index',
|
||||
};
|
||||
},
|
||||
});
|
||||
3
pages/deal/saleOrder/saleOrder.json
Normal file
3
pages/deal/saleOrder/saleOrder.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
||||
Reference in New Issue
Block a user