From 1a1de1517a88afe8c9f8981ebf677de406f8960b Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期二, 28 四月 2026 14:14:14 +0800
Subject: [PATCH] 基础参数模块开发
---
src/pages.json | 14 +
src/pages/productionDesign/basicParameters/index.vue | 245 ++++++++++++++++++++
src/pages/works.vue | 114 +++++++-
src/api/basicData/parameterMaintenance.js | 36 +++
src/pages/productionDesign/basicParameters/edit.vue | 290 ++++++++++++++++++++++++
5 files changed, 677 insertions(+), 22 deletions(-)
diff --git a/src/api/basicData/parameterMaintenance.js b/src/api/basicData/parameterMaintenance.js
new file mode 100644
index 0000000..387c2e3
--- /dev/null
+++ b/src/api/basicData/parameterMaintenance.js
@@ -0,0 +1,36 @@
+import request from "@/utils/request";
+
+// 鏌ヨ鍩虹鍙傛暟鍒楄〃
+export function getBaseParamList(query) {
+ return request({
+ url: "/technologyParam/list",
+ method: "get",
+ params: query,
+ });
+}
+
+// 鏂板鍩虹鍙傛暟
+export function addBaseParam(data) {
+ return request({
+ url: "/technologyParam/add",
+ method: "post",
+ data: data,
+ });
+}
+
+// 缂栬緫鍩虹鍙傛暟
+export function editBaseParam(data) {
+ return request({
+ url: "/technologyParam/edit",
+ method: "put",
+ data: data,
+ });
+}
+
+// 鍒犻櫎鍩虹鍙傛暟
+export function removeBaseParam(id) {
+ return request({
+ url: "/technologyParam/remove/" + id,
+ method: "delete",
+ });
+}
diff --git a/src/pages.json b/src/pages.json
index cbd1ada..1a946d7 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -367,6 +367,20 @@
}
},
{
+ "path": "pages/productionDesign/basicParameters/index",
+ "style": {
+ "navigationBarTitleText": "鍩虹鍙傛暟",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/productionDesign/basicParameters/edit",
+ "style": {
+ "navigationBarTitleText": "鍙傛暟璇︽儏",
+ "navigationStyle": "custom"
+ }
+ },
+ {
"path": "pages/cooperativeOffice/collaborativeApproval/index1",
"style": {
"navigationBarTitleText": "鍏嚭绠$悊",
diff --git a/src/pages/productionDesign/basicParameters/edit.vue b/src/pages/productionDesign/basicParameters/edit.vue
new file mode 100644
index 0000000..111b465
--- /dev/null
+++ b/src/pages/productionDesign/basicParameters/edit.vue
@@ -0,0 +1,290 @@
+<template>
+ <view class="basic-parameters-edit">
+ <PageHeader :title="pageTitle"
+ @back="goBack" />
+ <up-form ref="formRef"
+ :model="form"
+ :rules="rules"
+ :errorType="['none']"
+ label-width="110">
+ <up-form-item label="鍙傛暟缂栫爜"
+ prop="paramCode">
+ <up-input v-model="form.paramCode"
+ disabled
+ placeholder="鑷姩鐢熸垚" />
+ </up-form-item>
+ <up-form-item label="鍙傛暟鍚嶇О"
+ prop="paramName"
+ required>
+ <up-input v-model="form.paramName"
+ placeholder="璇疯緭鍏ュ弬鏁板悕绉�"
+ clearable />
+ </up-form-item>
+ <up-form-item label="鍙傛暟绫诲瀷"
+ prop="paramType"
+ required>
+ <up-input v-model="paramTypeText"
+ placeholder="璇烽�夋嫨鍙傛暟绫诲瀷"
+ readonly
+ @click="showParamTypeSheet = true" />
+ <template #right>
+ <up-icon name="arrow-right"
+ @click="showParamTypeSheet = true"></up-icon>
+ </template>
+ </up-form-item>
+ <up-form-item label="鍗曚綅"
+ prop="unit"
+ :required="form.paramType === 1">
+ <up-input v-model="form.unit"
+ placeholder="璇疯緭鍏ュ崟浣�"
+ clearable />
+ </up-form-item>
+ <up-form-item label="鍙栧�兼牸寮�"
+ v-if="form.paramType === 1 || form.paramType === 2"
+ prop="paramFormat">
+ <up-input v-model="form.paramFormat"
+ placeholder="璇疯緭鍏ュ彇鍊兼牸寮�"
+ clearable />
+ </up-form-item>
+ <up-form-item label="涓嬫媺瀛楀吀"
+ v-else-if="form.paramType === 3"
+ prop="paramFormat">
+ <up-input v-model="dictTypeText"
+ placeholder="璇烽�夋嫨涓嬫媺瀛楀吀"
+ readonly
+ @click="showDictTypeSheet = true" />
+ <template #right>
+ <up-icon name="arrow-right"
+ @click="showDictTypeSheet = true"></up-icon>
+ </template>
+ </up-form-item>
+ <up-form-item label="鏃堕棿鏍煎紡"
+ v-else-if="form.paramType === 4"
+ prop="paramFormat">
+ <up-input v-model="form.paramFormat"
+ placeholder="璇烽�夋嫨鏃堕棿鏍煎紡"
+ readonly
+ @click="showTimeFormatSheet = true" />
+ <template #right>
+ <up-icon name="arrow-right"
+ @click="showTimeFormatSheet = true"></up-icon>
+ </template>
+ </up-form-item>
+ <up-form-item label="鏄惁蹇呭~"
+ prop="isRequired">
+ <view style="display: flex; justify-content: flex-end; width: 100%;">
+ <up-switch v-model="form.isRequired"
+ :activeValue="1"
+ :inactiveValue="0" />
+ </view>
+ </up-form-item>
+ <up-form-item label="澶囨敞"
+ prop="remark">
+ <up-textarea v-model="form.remark"
+ placeholder="璇疯緭鍏ュ娉�"
+ autoHeight />
+ </up-form-item>
+ </up-form>
+ <FooterButtons :loading="loading"
+ :confirmText="paramId ? '淇濆瓨' : '鏂板'"
+ @cancel="goBack"
+ @confirm="handleSubmit" />
+ <!-- 鍙傛暟绫诲瀷閫夋嫨 -->
+ <up-action-sheet :show="showParamTypeSheet"
+ title="閫夋嫨鍙傛暟绫诲瀷"
+ :actions="paramTypeActions"
+ @select="onSelectParamType"
+ @close="showParamTypeSheet = false" />
+ <!-- 涓嬫媺瀛楀吀閫夋嫨 -->
+ <up-action-sheet :show="showDictTypeSheet"
+ title="閫夋嫨涓嬫媺瀛楀吀"
+ :actions="dictTypeActions"
+ @select="onSelectDictType"
+ @close="showDictTypeSheet = false" />
+ <!-- 鏃堕棿鏍煎紡閫夋嫨 -->
+ <up-action-sheet :show="showTimeFormatSheet"
+ title="閫夋嫨鏃堕棿鏍煎紡"
+ :actions="timeFormatActions"
+ @select="onSelectTimeFormat"
+ @close="showTimeFormatSheet = false" />
+ </view>
+</template>
+
+<script setup>
+ import { computed, nextTick, onMounted, ref } from "vue";
+ import { onLoad, onReady } from "@dcloudio/uni-app";
+ import FooterButtons from "@/components/FooterButtons.vue";
+ import PageHeader from "@/components/PageHeader.vue";
+ import {
+ addBaseParam,
+ editBaseParam,
+ } from "@/api/basicData/parameterMaintenance";
+ import { listType } from "@/api/system/dict/type";
+
+ const formRef = ref();
+ const loading = ref(false);
+ const paramId = ref("");
+ const showParamTypeSheet = ref(false);
+ const showDictTypeSheet = ref(false);
+ const showTimeFormatSheet = ref(false);
+ const dictTypes = ref([]);
+
+ const form = ref({
+ id: null,
+ paramCode: "",
+ paramName: "",
+ paramType: "",
+ unit: "",
+ remark: "",
+ isRequired: 0,
+ paramFormat: "",
+ });
+
+ const rules = {
+ paramName: [{ required: true, message: "璇疯緭鍏ュ弬鏁板悕绉�" }],
+ paramType: [{ required: true, message: "璇烽�夋嫨鍙傛暟绫诲瀷" }],
+ unit: [
+ {
+ validator: (rule, value, callback) => {
+ if (form.value.paramType === 1 && !value) {
+ callback(new Error("鏁板�肩被鍨嬪繀椤诲~鍐欏崟浣�"));
+ } else {
+ callback();
+ }
+ },
+ },
+ ],
+ };
+
+ const paramTypeActions = [
+ { name: "鏁板�兼牸寮�", value: 1 },
+ { name: "鏂囨湰鏍煎紡", value: 2 },
+ { name: "涓嬫媺閫夐」", value: 3 },
+ { name: "鏃堕棿鏍煎紡", value: 4 },
+ ];
+
+ const timeFormatActions = [
+ { name: "YYYY-MM-DD", value: "YYYY-MM-DD" },
+ { name: "YYYY-MM-DD HH:mm:ss", value: "YYYY-MM-DD HH:mm:ss" },
+ ];
+
+ const dictTypeActions = computed(() => {
+ return dictTypes.value.map(item => ({
+ name: item.dictName,
+ value: item.dictType,
+ }));
+ });
+
+ const pageTitle = computed(() => (paramId.value ? "缂栬緫鍙傛暟" : "鏂板鍙傛暟"));
+
+ const paramTypeText = computed(() => {
+ const action = paramTypeActions.find(
+ item => item.value === form.value.paramType
+ );
+ return action ? action.name : "";
+ });
+
+ const dictTypeText = computed(() => {
+ const action = dictTypes.value.find(
+ item => item.dictType === form.value.paramFormat
+ );
+ return action ? action.dictName : form.value.paramFormat || "";
+ });
+
+ const goBack = () => {
+ uni.navigateBack();
+ };
+
+ const getDictTypes = () => {
+ listType({ pageNum: 1, pageSize: 1000 }).then(res => {
+ dictTypes.value = res.rows || [];
+ });
+ };
+
+ const onSelectParamType = action => {
+ form.value.paramType = action.value;
+ if (action.value === 1) {
+ form.value.paramFormat = "#.00000";
+ } else if (action.value === 4) {
+ form.value.paramFormat = "YYYY-MM-DD HH:mm:ss";
+ } else {
+ form.value.paramFormat = "";
+ }
+ showParamTypeSheet.value = false;
+ };
+
+ const onSelectDictType = action => {
+ form.value.paramFormat = action.value;
+ showDictTypeSheet.value = false;
+ };
+
+ const onSelectTimeFormat = action => {
+ form.value.paramFormat = action.value;
+ showTimeFormatSheet.value = false;
+ };
+
+ const handleSubmit = () => {
+ formRef.value
+ .validate()
+ .then(() => {
+ if (form.value.paramType === 3 && !form.value.paramFormat) {
+ uni.showToast({ title: "璇烽�夋嫨涓嬫媺瀛楀吀", icon: "none" });
+ return;
+ }
+
+ loading.value = true;
+ const action = paramId.value ? editBaseParam : addBaseParam;
+ action({ ...form.value, id: paramId.value || undefined })
+ .then(() => {
+ uni.showToast({ title: "淇濆瓨鎴愬姛", icon: "success" });
+ setTimeout(() => {
+ goBack();
+ }, 1500);
+ })
+ .catch(() => {
+ uni.showToast({ title: "淇濆瓨澶辫触", icon: "none" });
+ })
+ .finally(() => {
+ loading.value = false;
+ });
+ })
+ .catch(errors => {
+ if (errors && errors.length > 0) {
+ uni.showToast({
+ title: errors[0].message,
+ icon: "none",
+ });
+ }
+ });
+ };
+
+ onReady(() => {
+ if (formRef.value) {
+ formRef.value.setRules(rules);
+ }
+ });
+
+ onMounted(() => {
+ getDictTypes();
+ });
+
+ onLoad(options => {
+ if (options?.item) {
+ const item = JSON.parse(decodeURIComponent(options.item));
+ paramId.value = item.id;
+ if (item.paramType) {
+ item.paramType = Number(item.paramType);
+ }
+ Object.assign(form.value, item);
+ }
+ });
+</script>
+
+<style scoped lang="scss">
+ @import "@/static/scss/form-common.scss";
+
+ .basic-parameters-edit {
+ min-height: 100vh;
+ background: #f5f5f5;
+ }
+</style>
diff --git a/src/pages/productionDesign/basicParameters/index.vue b/src/pages/productionDesign/basicParameters/index.vue
new file mode 100644
index 0000000..24a5db0
--- /dev/null
+++ b/src/pages/productionDesign/basicParameters/index.vue
@@ -0,0 +1,245 @@
+<template>
+ <view class="sales-account">
+ <PageHeader title="鍩虹鍙傛暟"
+ @back="goBack" />
+ <view class="search-section">
+ <view class="search-bar">
+ <view class="search-input">
+ <up-input class="search-text"
+ v-model="paramName"
+ placeholder="璇疯緭鍏ュ弬鏁板悕绉�"
+ clearable
+ @change="handleSearch" />
+ </view>
+ <view class="filter-button"
+ @click="handleSearch">
+ <up-icon name="search"
+ size="24"
+ color="#999999"></up-icon>
+ </view>
+ </view>
+ </view>
+ <view v-if="list.length > 0"
+ class="ledger-list">
+ <view v-for="item in list"
+ :key="item.id"
+ class="ledger-item">
+ <view class="item-header">
+ <view class="item-left">
+ <view class="document-icon">
+ <up-icon name="setting-fill"
+ size="16"
+ color="#ffffff"></up-icon>
+ </view>
+ <text class="item-id">{{ item.paramName || "-" }}</text>
+ </view>
+ <text class="item-index">{{ item.paramCode || "-" }}</text>
+ </view>
+ <up-divider></up-divider>
+ <view class="item-details">
+ <view class="detail-row">
+ <text class="detail-label">鍙傛暟绫诲瀷</text>
+ <up-tag :text="getParamTypeLabel(item.paramType)"
+ :type="getParamTypeTag(item.paramType)"
+ size="mini" />
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">鍗曚綅</text>
+ <text class="detail-value">{{ item.unit || "-" }}</text>
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">鏄惁蹇呭~</text>
+ <up-tag :text="item.isRequired === 1 ? '鏄�' : '鍚�'"
+ :type="item.isRequired === 1 ? 'success' : 'info'"
+ size="mini" />
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">鍙栧�兼牸寮�</text>
+ <text class="detail-value">{{ item.paramFormat || "-" }}</text>
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">澶囨敞</text>
+ <text class="detail-value">{{ item.remark || "-" }}</text>
+ </view>
+ </view>
+ <view class="action-buttons">
+ <up-button class="action-btn"
+ size="small"
+ type="primary"
+ @click="goEdit(item)">缂栬緫</up-button>
+ <up-button class="action-btn"
+ size="small"
+ type="error"
+ @click="handleDelete(item)">鍒犻櫎</up-button>
+ </view>
+ </view>
+ <up-loadmore :status="page.status" />
+ </view>
+ <view v-else
+ class="no-data">
+ <text>鏆傛棤鍩虹鍙傛暟鏁版嵁</text>
+ </view>
+ <view class="fab-button"
+ @click="goAdd">
+ <up-icon name="plus"
+ size="28"
+ color="#ffffff"></up-icon>
+ </view>
+ </view>
+</template>
+
+<script setup>
+ import { reactive, ref } from "vue";
+ import { onReachBottom, onShow } from "@dcloudio/uni-app";
+ import {
+ getBaseParamList,
+ removeBaseParam,
+ } from "@/api/basicData/parameterMaintenance";
+
+ const paramName = ref("");
+ const list = ref([]);
+
+ const page = reactive({
+ current: 1,
+ size: 100,
+ total: 0,
+ status: "loadmore", // loadmore, loading, nomore
+ });
+
+ const goBack = () => {
+ uni.navigateBack();
+ };
+
+ const getParamTypeLabel = type => {
+ const map = {
+ 1: "鏁板�兼牸寮�",
+ 2: "鏂囨湰鏍煎紡",
+ 3: "涓嬫媺閫夐」",
+ 4: "鏃堕棿鏍煎紡",
+ };
+ return map[type] || type;
+ };
+
+ const getParamTypeTag = type => {
+ const map = {
+ 1: "primary",
+ 2: "info",
+ 3: "warning",
+ 4: "success",
+ };
+ return map[type] || "info";
+ };
+
+ const goAdd = () => {
+ uni.navigateTo({ url: "/pages/productionDesign/basicParameters/edit" });
+ };
+
+ const goEdit = item => {
+ uni.navigateTo({
+ url: `/pages/productionDesign/basicParameters/edit?item=${encodeURIComponent(
+ JSON.stringify(item)
+ )}`,
+ });
+ };
+
+ const handleDelete = item => {
+ uni.showModal({
+ title: "鎻愮ず",
+ content: "纭畾瑕佸垹闄よ鍙傛暟鍚楋紵",
+ success: res => {
+ if (res.confirm) {
+ removeBaseParam(item.id).then(() => {
+ uni.showToast({ title: "鍒犻櫎鎴愬姛" });
+ handleSearch();
+ });
+ }
+ },
+ });
+ };
+
+ const handleSearch = () => {
+ page.current = 1;
+ page.status = "loadmore";
+ list.value = [];
+ getList();
+ };
+
+ const getList = () => {
+ if (page.status === "loading" || page.status === "nomore") return;
+
+ page.status = "loading";
+ getBaseParamList({
+ current: page.current,
+ size: page.size,
+ paramName: paramName.value,
+ })
+ .then(res => {
+ const records = res?.data?.records || res?.records || [];
+ const total = res?.data?.total || res?.total || 0;
+
+ if (page.current === 1) {
+ list.value = records;
+ } else {
+ list.value = [...list.value, ...records];
+ }
+
+ page.total = total;
+ if (list.value.length >= total) {
+ page.status = "nomore";
+ } else {
+ page.status = "loadmore";
+ page.current++;
+ }
+ })
+ .catch(() => {
+ uni.showToast({ title: "鏌ヨ澶辫触", icon: "error" });
+ page.status = "loadmore";
+ });
+ };
+
+ onReachBottom(() => {
+ getList();
+ });
+
+ onShow(() => {
+ handleSearch();
+ });
+</script>
+
+<style scoped lang="scss">
+ @import "@/styles/procurement-common.scss";
+
+ .no-data {
+ padding-top: 100rpx;
+ text-align: center;
+ color: #999;
+ font-size: 28rpx;
+ }
+
+ .action-buttons {
+ display: flex;
+ justify-content: flex-end;
+ gap: 20rpx;
+ padding-bottom: 30rpx;
+ }
+
+ .action-btn {
+ width: 140rpx;
+ margin: 0 !important;
+ }
+
+ .fab-button {
+ position: fixed;
+ right: 40rpx;
+ bottom: 60rpx;
+ width: 100rpx;
+ height: 100rpx;
+ background: #2979ff;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ box-shadow: 0 4rpx 12rpx rgba(41, 121, 255, 0.4);
+ z-index: 100;
+ }
+</style>
diff --git a/src/pages/works.vue b/src/pages/works.vue
index b4400c7..72f1d0a 100644
--- a/src/pages/works.vue
+++ b/src/pages/works.vue
@@ -15,7 +15,8 @@
:key="index"
@click="handleCommonItemClick(item)">
<view class="icon-container">
- <image :src="item.icon" class="item-icon"></image>
+ <image :src="item.icon"
+ class="item-icon"></image>
</view>
<text class="item-label">{{item.label}}</text>
</up-grid-item>
@@ -37,7 +38,31 @@
:key="index"
@click="handleCommonItemClick(item)">
<view class="icon-container">
- <image :src="item.icon" class="item-icon"></image>
+ <image :src="item.icon"
+ class="item-icon"></image>
+ </view>
+ <text class="item-label">{{item.label}}</text>
+ </up-grid-item>
+ </up-grid>
+ </view>
+ </view>
+ <!-- 宸ヨ壓璁捐 -->
+ <view class="common-module design-module"
+ v-if="hasDesignItems">
+ <view class="module-header">
+ <view class="module-title-container">
+ <text class="module-title">宸ヨ壓璁捐</text>
+ </view>
+ </view>
+ <view class="module-content">
+ <up-grid :border="false"
+ col="4">
+ <up-grid-item v-for="(item, index) in designItems"
+ :key="index"
+ @click="handleCommonItemClick(item)">
+ <view class="icon-container">
+ <image :src="item.icon"
+ class="item-icon"></image>
</view>
<text class="item-label">{{item.label}}</text>
</up-grid-item>
@@ -59,7 +84,8 @@
:key="index"
@click="handleCommonItemClick(item)">
<view class="icon-container">
- <image :src="item.icon" class="item-icon"></image>
+ <image :src="item.icon"
+ class="item-icon"></image>
</view>
<text class="item-label">{{item.label}}</text>
</up-grid-item>
@@ -81,7 +107,8 @@
:key="index"
@click="handleCommonItemClick(item)">
<view class="icon-container">
- <image :src="item.icon" class="item-icon"></image>
+ <image :src="item.icon"
+ class="item-icon"></image>
</view>
<text class="item-label">{{item.label}}</text>
</up-grid-item>
@@ -103,7 +130,8 @@
:key="index"
@click="handleCommonItemClick(item)">
<view class="icon-container">
- <image :src="item.icon" class="item-icon"></image>
+ <image :src="item.icon"
+ class="item-icon"></image>
</view>
<text class="item-label">{{item.label}}</text>
</up-grid-item>
@@ -125,7 +153,8 @@
:key="index"
@click="handleCommonItemClick(item)">
<view class="icon-container">
- <image :src="item.icon" class="item-icon"></image>
+ <image :src="item.icon"
+ class="item-icon"></image>
</view>
<text class="item-label">{{item.label}}</text>
</up-grid-item>
@@ -147,7 +176,8 @@
:key="index"
@click="handleCommonItemClick(item)">
<view class="icon-container">
- <image :src="item.icon" class="item-icon"></image>
+ <image :src="item.icon"
+ class="item-icon"></image>
</view>
<text class="item-label">{{item.label}}</text>
</up-grid-item>
@@ -169,7 +199,8 @@
:key="index"
@click="handleCommonItemClick(item)">
<view class="icon-container">
- <image :src="item.icon" class="item-icon"></image>
+ <image :src="item.icon"
+ class="item-icon"></image>
</view>
<text class="item-label">{{item.label}}</text>
</up-grid-item>
@@ -191,7 +222,8 @@
:key="index"
@click="handleCommonItemClick(item)">
<view class="icon-container">
- <image :src="item.icon" class="item-icon"></image>
+ <image :src="item.icon"
+ class="item-icon"></image>
</view>
<text class="item-label">{{item.label}}</text>
</up-grid-item>
@@ -213,7 +245,8 @@
:key="index"
@click="handleCommonItemClick(item)">
<view class="icon-container">
- <image :src="item.icon" class="item-icon"></image>
+ <image :src="item.icon"
+ class="item-icon"></image>
</view>
<text class="item-label">{{item.label}}</text>
</up-grid-item>
@@ -235,7 +268,8 @@
:key="index"
@click="handleCommonItemClick(item)">
<view class="icon-container">
- <image :src="item.icon" class="item-icon"></image>
+ <image :src="item.icon"
+ class="item-icon"></image>
</view>
<text class="item-label">{{item.label}}</text>
</up-grid-item>
@@ -257,14 +291,14 @@
:key="index"
@click="handleCommonItemClick(item)">
<view class="icon-container">
- <image :src="item.icon" class="item-icon"></image>
+ <image :src="item.icon"
+ class="item-icon"></image>
</view>
<text class="item-label">{{item.label}}</text>
</up-grid-item>
</up-grid>
</view>
</view>
-
<DownloadProgressMask />
</view>
</template>
@@ -299,6 +333,25 @@
currentStatus.value = statusList[statusIndex];
}, 3000);
};
+ // 宸ヨ壓璁捐鍔熻兘鏁版嵁
+ const designItems = reactive([
+ {
+ icon: "/static/images/icon/xiaoshoubaojia.svg",
+ label: "鍩虹鍙傛暟",
+ },
+ {
+ icon: "/static/images/icon/xiaoshoubaojia.svg",
+ label: "宸ュ簭绠$悊",
+ },
+ {
+ icon: "/static/images/icon/xiaoshoubaojia.svg",
+ label: "BOM",
+ },
+ {
+ icon: "/static/images/icon/xiaoshoubaojia.svg",
+ label: "宸ヨ壓璺嚎",
+ },
+ ]);
// 钀ラ攢绠$悊鍔熻兘鏁版嵁
const marketingItems = reactive([
@@ -397,8 +450,8 @@
{
icon: "/static/images/icon/hetongguanli.svg",
label: "褰掕繕鐧昏",
- }
- ])
+ },
+ ]);
// 鍞悗鏈嶅姟鍔熻兘鏁版嵁
const afterSalesServiceItems = reactive([
@@ -938,6 +991,11 @@
url: "/pages/fileManagement/return/index",
});
break;
+ case "鍩虹鍙傛暟":
+ uni.navigateTo({
+ url: "/pages/productionDesign/basicParameters/index",
+ });
+ break;
default:
uni.showToast({
title: `鐐瑰嚮浜�${item.label}`,
@@ -1125,10 +1183,13 @@
// 瀹氫箟鑿滃崟閰嶇疆鏄犲皠
const menuMapping = {
- collaboration: { target: collaborationItems, specialMapping: { "瑙勭珷鍒跺害": "瑙勭珷鍒跺害绠$悊" } },
- purchase: { specialMapping: { "渚涘簲鍟嗘。妗�": "渚涘簲鍟嗙鐞�" } },
+ collaboration: {
+ target: collaborationItems,
+ specialMapping: { 瑙勭珷鍒跺害: "瑙勭珷鍒跺害绠$悊" },
+ },
+ purchase: { specialMapping: { 渚涘簲鍟嗘。妗�: "渚涘簲鍟嗙鐞�" } },
};
- console.log(allowedMenuTitles)
+ console.log(allowedMenuTitles);
// 閫氱敤杩囨护鍑芥暟
const filterArray = (targetArray, specialMapping) => {
const filtered = targetArray.filter(item => {
@@ -1157,17 +1218,26 @@
// 妫�鏌ユā鍧楁槸鍚︽湁鑿滃崟椤归渶瑕佹樉绀�
const hasMarketingItems = computed(() => marketingItems.length > 0);
+ const hasDesignItems = computed(() => designItems.length > 0);
const hasPurchaseItems = computed(() => purchaseItems.length > 0);
- const hasFinanceManagementItems = computed(() => financeManagementItems.length > 0);
- const hasAfterSalesServiceItems = computed(() => afterSalesServiceItems.length > 0);
+ const hasFinanceManagementItems = computed(
+ () => financeManagementItems.length > 0
+ );
+ const hasAfterSalesServiceItems = computed(
+ () => afterSalesServiceItems.length > 0
+ );
const hasCollaborationItems = computed(() => collaborationItems.length > 0);
const hasSafetyItems = computed(() => safetyItems.length > 0);
const hasQualityItems = computed(() => qualityItems.length > 0);
const hasHumanResourcesItems = computed(() => humanResourcesItems.length > 0);
- const hasWarehouseLogisticsItems = computed(() => warehouseLogisticsItems.length > 0);
+ const hasWarehouseLogisticsItems = computed(
+ () => warehouseLogisticsItems.length > 0
+ );
const hasProductionItems = computed(() => productionItems.length > 0);
const hasEquipmentItems = computed(() => equipmentItems.length > 0);
- const hasArchiveManagementItems = computed(() => archiveManagementItems.length > 0);
+ const hasArchiveManagementItems = computed(
+ () => archiveManagementItems.length > 0
+ );
onMounted(() => {
// 姣忔杩涘叆棣栭〉閮藉己鍒跺埛鏂扮敤鎴蜂俊鎭拰璺敱鏉冮檺锛屼笉鍋氭湰鍦扮紦瀛樺垽鏂�
--
Gitblit v1.9.3