feat: 添加组件配置文件并优化页面结构

- 新增 components.d.json 文件,包含所有组件的属性配置
- 添加 card-item-plugin 组件及其相关文件(json、ts、wxml、wxss)
- 在 app.json 中添加新的生产流程管理页面路径
- 添加多个SVG图标文件用于菜单项
- 重构 popup-plugin 组件样式和关闭逻辑
- 更新 tab-bar-plugin 的激活状态逻辑
- 优化 search-popup 使用全局样式类
- 在首页添加菜单配置和页面跳转功能
- 调整组件样式细节和间距
This commit is contained in:
zhengw
2026-01-14 16:54:47 +08:00
parent 0d58fc80f4
commit b1ecd88641
58 changed files with 971 additions and 386 deletions

View File

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

View File

@@ -0,0 +1,211 @@
import { getDataSet } 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,
},
],
},
],
},
navDetail(e: any) {
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}`,
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad() {},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {},
/**
* 生命周期函数--监听页面显示
*/
onShow() {},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {},
});

View File

@@ -0,0 +1,18 @@
<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>
</block>

View File

@@ -0,0 +1,35 @@
.process-child-box {
display: flex;
flex-wrap: wrap;
align-items: center;
column-gap: 32rpx;
row-gap: 32rpx;
margin-bottom: 32rpx;
}
.p_process_name {
font-size: 1.125em;
font-weight: bold;
margin-bottom: 24rpx;
}
.process-child-item-box {
position: relative;
border: 1rpx solid #ddd;
padding: 16rpx;
border-radius: 8rpx;
}
.process-child-item-num {
position: absolute;
top: 0;
right: 0;
transform: translate(50%, -50%);
background-color: #2ba471;
color: #fff;
border-radius: 100%;
line-height: 1.1;
padding: 2rpx 8rpx;
font-size: 28rpx;
}

View File

@@ -0,0 +1,9 @@
{
"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"
},
"navigationBarTitleText": "流程管理详情"
}

View File

@@ -0,0 +1,85 @@
import { getDataSet } 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,
},
tabChange(e: any) {
const state = getDataSet(e).key;
this.data.params.state = state;
this.page();
},
page(curr: number = 1) {
this.data.params.curr_page = curr;
this.setData({ params: this.data.params });
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
// console.log(options);
wx.setNavigationBarTitle({
title: decodeURIComponent(options.title || ""),
});
this.data.params.process_id = `${options.process_id || ""}`;
this.page();
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {},
/**
* 生命周期函数--监听页面显示
*/
onShow() {},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {},
});

View File

@@ -0,0 +1,17 @@
<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>
<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" />
</view>
</card-plugin>
</block>

View File

@@ -0,0 +1,18 @@
.tabs {
display: inline-flex;
margin-bottom: 32rpx;
}
.tabs-item {
display: inline-flex;
height: 64rpx;
align-items: center;
padding: 0 24rpx;
background-color: #f5f5f5;
line-height: 1;
}
.tabs-item.active {
background-color: #0052d9;
color: #fff;
}