添加组件及页面

This commit is contained in:
zhengw
2026-01-21 17:05:30 +08:00
parent a89e69c381
commit 7ff1a911dd
54 changed files with 1078 additions and 1009 deletions

View File

@@ -1,5 +1,5 @@
{
"usingComponents": {},
"usingComponents": { },
"navigationBarTitleText": "流程管理"
}

View File

@@ -1,177 +1,54 @@
import { getDataSet } from "@/utils/util";
import { loginStatus, post } from '@/utils/https';
import { getAuthInfo, getDataSet, toArray } from '@/utils/util';
Page({
/**
* 页面的初始数据
*/
data: {
process: [
{
p_process_name: "办公流程",
parent_process_id: 34,
child: [
{
process_name: "录单亲亲我",
process_id: 86,
parent_process_id: 34,
p_process_name: "办公流程",
num: 1,
tot_num: 1,
},
],
},
{
p_process_name: "车间流程",
parent_process_id: 36,
child: [
{
process_name: "接单",
process_id: 85,
parent_process_id: 36,
p_process_name: "车间流程",
num: 12,
tot_num: 12,
},
{
process_name: "测量",
process_id: 91,
parent_process_id: 36,
p_process_name: "车间流程",
num: 11,
tot_num: 12,
},
{
process_name: "报价",
process_id: 92,
parent_process_id: 36,
p_process_name: "车间流程",
num: 7,
tot_num: 8,
},
{
process_name: "复尺",
process_id: 93,
parent_process_id: 36,
p_process_name: "车间流程",
num: 7,
tot_num: 8,
},
{
process_name: "备料",
process_id: 94,
parent_process_id: 36,
p_process_name: "车间流程",
num: 7,
tot_num: 8,
},
{
process_name: "拆单",
process_id: 95,
parent_process_id: 36,
p_process_name: "车间流程",
num: 7,
tot_num: 8,
},
{
process_name: "跟单",
process_id: 96,
parent_process_id: 36,
p_process_name: "车间流程",
num: 7,
tot_num: 8,
},
{
process_name: "排单",
process_id: 97,
parent_process_id: 36,
p_process_name: "车间流程",
num: 7,
tot_num: 8,
},
{
process_name: "开料",
process_id: 98,
parent_process_id: 36,
p_process_name: "车间流程",
num: 7,
tot_num: 8,
},
{
process_name: "封边",
process_id: 99,
parent_process_id: 36,
p_process_name: "车间流程",
num: 7,
tot_num: 8,
},
{
process_name: "打孔",
process_id: 100,
parent_process_id: 36,
p_process_name: "车间流程",
num: 7,
tot_num: 8,
},
{
process_name: "特殊加工",
process_id: 101,
parent_process_id: 36,
p_process_name: "车间流程",
num: 7,
tot_num: 8,
},
{
process_name: "分拣",
process_id: 102,
parent_process_id: 36,
p_process_name: "车间流程",
num: 5,
tot_num: 6,
},
{
process_name: "包装",
process_id: 103,
parent_process_id: 36,
p_process_name: "车间流程",
num: 6,
tot_num: 7,
},
{
process_name: "入库",
process_id: 104,
parent_process_id: 36,
p_process_name: "车间流程",
num: 7,
tot_num: 8,
},
{
process_name: "出库",
process_id: 105,
parent_process_id: 36,
p_process_name: "车间流程",
num: 7,
tot_num: 8,
},
],
},
],
process: [] as any[],
},
navDetail(e: any) {
const index = getDataSet(e).index.split(",");
const index = getDataSet(e).index.split(',');
const pProcess = this.data.process[index[0]];
const cProcess = pProcess.child[index[1]];
const { p_process_name, process_name, process_id } = cProcess;
const title = encodeURIComponent(`${p_process_name} - ${process_name}`);
console.log(title);
wx.navigateTo({
url: `/pages/produce/processManageDetail/processManageDetail?process_id=${process_id}&title=${title}`,
});
},
handleLogin(e: any) {
this.setData({ isLogin: e.detail });
if (e.detail) {
this.init();
}
},
init() {
this.setData({ authInfo: getAuthInfo() });
this.getList();
},
getList() {
post('CompanyProcessV2/getAllProcessNum').then((res: any) => {
this.setData({ process: toArray(res.data) });
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad() {},
onLoad() {
this.setData({ loading: true });
loginStatus()
.then(() => {
this.setData({ isLogin: true, loading: false });
this.init();
})
.catch((err) => {
this.setData({ isLogin: false, loading: false });
console.log('调用登录状态请求失败', err);
});
},
/**
* 生命周期函数--监听页面初次渲染完成
@@ -208,4 +85,3 @@ Page({
*/
onShareAppMessage() {},
});

View File

@@ -1,18 +1,16 @@
<block wx:for="{{ process }}" wx:key="parent_process_id">
<view class="process-box">
<view class="p_process_name">{{ item.p_process_name }}</view>
<view class="process-child-box">
<block
wx:for="{{ item.child }}"
wx:key="process_id"
wx:for-item="child"
wx:for-index="ci"
>
<view class="process-child-item-box" bind:tap="navDetail" data-index="{{ index+','+ci }}">{{ child.process_name }}
<view class="process-child-item-num">{{ child.num }}</view>
</view>
</block>
<page-plugin hasTabBar="1" isAuth="{{authInfo['SF_ERP_PRODUCT_PROCESS_VIEW']}}"
loading="{{loading}}" is-login="{{isLogin}}" bind:handleLogin="handleLogin">
<block wx:for="{{ process }}" wx:key="parent_process_id">
<view class="process-box">
<view class="p_process_name">{{ item.p_process_name }}</view>
<view class="process-child-box">
<block wx:for="{{ item.child }}" wx:key="process_id" wx:for-item="child" wx:for-index="ci">
<view class="process-child-item-box" bind:tap="navDetail" data-index="{{ index+','+ci }}">
{{ child.process_name }}
<view class="process-child-item-num">{{ child.num }}</view>
</view>
</block>
</view>
</view>
</view>
</block>
</block>
</page-plugin>

View File

@@ -18,7 +18,6 @@
border: 1rpx solid #ddd;
padding: 16rpx;
border-radius: 8rpx;
}
.process-child-item-num {

View File

@@ -2,7 +2,11 @@
"usingComponents": {
"search-popup": "/pages/components/search-popup/search-popup",
"card-plugin": "/pages/components/card-plugin/card-plugin",
"card-item-plugin": "/pages/components/card-item-plugin/card-item-plugin"
"card-item-plugin": "/pages/components/card-item-plugin/card-item-plugin",
"t-dialog": "tdesign-miniprogram/dialog/dialog",
"t-input": "tdesign-miniprogram/input/input",
"pagination-plugin": "/pages/components/pagination-plugin/pagination-plugin",
"search-input": "/pages/components/search-input/search-input"
},
"navigationBarTitleText": "流程管理详情"
}

View File

@@ -1,50 +1,117 @@
import { getDataSet } from "@/utils/util";
import { loginStatus, post } from '@/utils/https';
import { getAuthInfo, getDataSet, toArray, toastSuccess, toNumber } from '@/utils/util';
Page({
/**
* 页面的初始数据
*/
data: {
params: { curr_page: 1, page_count: 20, state: "1", process_id: "" },
list: [
{
order_no: "XSDD2025112500000043",
custom_name: "客户5",
custom_address: "",
custom_phone: null,
custom_order_no: "",
goods_name: "浴室柜",
info_process_id: 163,
produce_info_id: 62,
process_code: "ld",
state: 1,
end_user_address: null,
end_user_name: null,
end_user_phone: null,
},
],
count: 1,
params: { curr_page: 1, page_count: 20, state: '1', process_id: '' } as any,
list: [] as any[],
count: 0,
dialog: {
visible: false,
content: '',
item: {} as any,
action: '' as 'end' | 'back',
},
},
handleLogin(e: any) {
this.setData({ isLogin: e.detail });
if (e.detail) {
this.init();
}
},
init() {
this.setData({ authInfo: getAuthInfo() });
this.getList();
},
searchChange(e: any) {
this.data.params.order_no = e.detail.value;
},
searchChange2(e: any) {
const key = getDataSet(e).key;
const val = `${e.detail.value || ''}`.trim();
console.log(e);
if (val) {
this.data.params[key] = val;
} else {
delete this.data.params[key];
}
},
searchOk() {
this.getList(1);
},
tabChange(e: any) {
const state = getDataSet(e).key;
this.data.params.state = state;
this.page();
this.getList();
},
page(curr: number = 1) {
paginationChange(e: any) {
this.getList(e.detail.curr_page);
},
getList(curr: number = 1) {
this.data.params.curr_page = curr;
this.setData({ params: this.data.params });
post('CompanyProcessV2/processOrd', this.data.params).then((res: any) => {
const list = toArray(res.data);
if (list.length == 0 && this.data.params.curr_page > 1) {
this.getList(this.data.params.curr_page - 1);
}
this.setData({
count: toNumber(res.count),
list: list,
});
});
},
confirmDialog() {
post('ProduceOrder/setProcessV2', {
info_process_id: JSON.stringify([this.data.dialog.item.info_process_id]),
action: this.data.dialog.action,
}).then(() => {
this.closeDialog();
toastSuccess(this.data.dialog.action == 'end' ? '订单工序完成成功' : '订单工序撤回成功');
setTimeout(() => {
this.getList(this.data.params.curr_page);
}, 1500);
});
},
closeDialog() {
this.data.dialog.visible = false;
this.setData({ dialog: this.data.dialog });
},
onEndOrBack(e: any) {
const data = getDataSet(e);
const index = data.index;
const item = this.data.list[index];
this.setData({
dialog: {
visible: true,
content: `确认${data.action == 'end' ? '完成' : '撤回'} ${item.order_no} ?`,
action: data.action,
item,
},
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
// console.log(options);
wx.setNavigationBarTitle({
title: decodeURIComponent(options.title || ""),
title: decodeURIComponent(options.title || ''),
});
this.data.params.process_id = `${options.process_id || ""}`;
this.page();
this.data.params.process_id = `${options.process_id || ''}`;
this.setData({ loading: true });
loginStatus()
.then(() => {
this.setData({ isLogin: true, loading: false });
this.init();
})
.catch((err) => {
this.setData({ isLogin: false, loading: false });
console.log('调用登录状态请求失败', err);
});
},
/**
@@ -82,4 +149,3 @@ Page({
*/
onShareAppMessage() {},
});

View File

@@ -1,17 +1,49 @@
<search-popup placeholder="输入销售单号" />
<view class="tabs">
<view class="tabs-item {{ params.state == '1' ? 'active': '' }}" bind:tap="tabChange" data-key="1">待处理</view>
<view class="tabs-item {{ params.state == '2' ? 'active': '' }}" bind:tap="tabChange" data-key="2">已处理</view>
</view>
<block wx:for="{{ list }}" wx:key="info_process_id">
<card-plugin>
<view slot="header">{{ item.order_no }}</view>
<page-plugin isAuth="{{authInfo['SF_ERP_PRODUCT_PROCESS_VIEW']}}" loading="{{loading}}"
is-login="{{isLogin}}" bind:handleLogin="handleLogin">
<search-popup placeholder="输入销售单号" bind:change="searchChange" bind:ok="searchOk">
<view slot="content">
<card-item-plugin label="订单编号" value="1哒哒哒哒哒哒多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多多" />
<card-item-plugin label="订单编号" value="111111" />
<card-item-plugin label="订单编号" value="111111" />
<card-item-plugin label="订单编号" value="111111" />
<search-input label="自定义单号" data-key="custom_order_no" bind:change="searchChange2" />
<search-input label="经销商名称" data-key="custom_name" bind:change="searchChange2" />
<search-input label="经销商手机" data-key="custom_phone" bind:change="searchChange2" />
<search-input label="经销商地址" data-key="custom_address" bind:change="searchChange2" />
<search-input label="客户名称" data-key="end_user_name" bind:change="searchChange2" />
<search-input label="客户手机" data-key="end_user_phone" bind:change="searchChange2" />
<search-input label="客户地址" data-key="end_user_address" bind:change="searchChange2" />
</view>
</card-plugin>
</block>
</search-popup>
<view class="tabs">
<view class="tabs-item {{ params.state == '1' ? 'active': '' }}" bind:tap="tabChange"
data-key="1">待处理</view>
<view class="tabs-item {{ params.state == '2' ? 'active': '' }}" bind:tap="tabChange"
data-key="2">已处理</view>
</view>
<t-empty wx:if="{{list.length == 0}}" icon="info-circle-filled" description="暂无数据"
style="margin-bottom: 24rpx;" />
<block wx:for="{{ list }}" wx:key="info_process_id">
<card-plugin>
<view slot="header">{{ item.order_no }}</view>
<view slot="content">
<card-item-plugin label="自定义单号" value="{{item.custom_order_no}}" />
<card-item-plugin label="产品名称" value="{{item.goods_name}}" />
<card-item-plugin label="经销商名称" value="{{item.custom_name}}" />
<card-item-plugin label="经销商手机" value="{{item.custom_phone}}" />
<card-item-plugin label="经销商地址" value="{{item.custom_address}}" />
<card-item-plugin label="客户名称" value="{{item.end_user_name}}" />
<card-item-plugin label="客户手机" value="{{item.end_user_phone}}" />
<card-item-plugin label="客户地址" value="{{item.end_user_address}}" />
</view>
<view slot="footer" style="padding-bottom: 16rpx;">
<t-button size="small" theme="{{params.state == '1' ? 'primary' : 'danger'}}"
data-action="{{params.state == '1' ? 'end' : 'back'}}" bind:tap="onEndOrBack"
data-index="{{index}}">{{params.state == '1' ? '完成' : '撤回'}}
</t-button>
</view>
</card-plugin>
</block>
<pagination-plugin curr_page="{{params.curr_page}}" page_count="{{params.page_count}}"
total="{{count}}" bind:change="paginationChange" />
</page-plugin>
<t-dialog visible="{{dialog.visible}}" title="系统提示" content="{{dialog.content}}"
confirm-btn="{{{ content: '确定', theme: 'primary', variant: 'base'} }}" cancel-btn="取消"
bind:confirm="confirmDialog" bind:cancel="closeDialog" />