From 3aedad63dd01f1fc5154cb520af32edab967d6e0 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周一, 12 5月 2025 09:15:26 +0800
Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/HIA24016N_PipeLineDemo
---
PipeLineLems/pipelinelems_web/src/widgets/OrderManagement-main/dialog/segment/segment.tsx | 128 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 128 insertions(+), 0 deletions(-)
diff --git a/PipeLineLems/pipelinelems_web/src/widgets/OrderManagement-main/dialog/segment/segment.tsx b/PipeLineLems/pipelinelems_web/src/widgets/OrderManagement-main/dialog/segment/segment.tsx
new file mode 100644
index 0000000..3e65244
--- /dev/null
+++ b/PipeLineLems/pipelinelems_web/src/widgets/OrderManagement-main/dialog/segment/segment.tsx
@@ -0,0 +1,128 @@
+import { computed, defineComponent, ref, onMounted, watch } from 'vue'
+import BaseDialog from '@/components/BaseDialog/index.vue'
+import styles from './segment.module.scss'
+import { getSegments } from '../../api/process'
+import DyForm from '@/components/DyForm/DyForm'
+import { _t } from '@/libs/Language/Language'
+
+interface SegmentType {
+ segmentId: string
+ segmentName: string
+}
+export default defineComponent({
+ name: 'OrderManagementDialogSegment',
+ props: {
+ modelValue: {
+ type: Boolean,
+ default: false,
+ },
+ id: {
+ type: String,
+ default: '',
+ },
+ },
+ emits: ['update:modelValue', 'confirm'],
+ setup(props, { emit }) {
+ const visible = computed({
+ get() {
+ return props.modelValue
+ },
+ set(value) {
+ emit('update:modelValue', value)
+ },
+ })
+ const formRef = ref<any>(null)
+ const formData = ref<any>({
+ segment: [],
+ })
+ const segmentList = ref<any[]>([])
+ const formItemProps = computed(() => [
+ {
+ prop: 'segment',
+ el: 'select',
+ options: segmentList,
+ label: _t('浜х嚎娈�'),
+ width: '350px',
+ collapseTags: true,
+ multiple: true,
+ collapseTagsTooltip: true,
+ maxCollapseTags: 5,
+ clearable: true,
+ noDataText: _t('璇ュ伐鍗曟病鏈夊彲浣跨敤鐨勪骇绾挎'),
+ rules: [
+ {
+ required: true,
+ message: _t('璇烽�夋嫨浜х嚎娈�'),
+ trigger: 'change',
+ type: 'array',
+ },
+ ],
+ },
+ ])
+ const init = async () => {
+ const res = await getSegments(props.id)
+ segmentList.value = res.map((item: SegmentType) => ({
+ value: item.segmentId,
+ name: item.segmentName,
+ }))
+ formData.value = {
+ segment: res.map((item: SegmentType) => item.segmentId),
+ }
+ }
+
+ const onClose = () => {
+ visible.value = false
+ }
+
+ const onConfirm = async () => {
+ try {
+ await formRef.value?.validate()
+ visible.value = false
+ const segment = formData.value?.segment || []
+ const data = segmentList.value
+ .map((item: any) => {
+ if (segment.includes(item.value)) {
+ return {
+ segmentId: item.value,
+ segmentName: item.name,
+ }
+ }
+ return null
+ })
+ .filter((v) => v)
+
+ emit('confirm', {
+ segments: data,
+ })
+ } catch (error) {
+ console.error(error)
+ }
+ }
+
+ watch(
+ () => props.modelValue,
+ (value) => {
+ if (value) {
+ init()
+ }
+ }
+ )
+
+ return () => (
+ <BaseDialog
+ v-model={visible.value}
+ title={_t('浜х嚎娈甸厤缃�')}
+ onClose={onClose}
+ onConfirm={onConfirm}
+ >
+ <div class={styles.segmentDialog}>
+ <DyForm
+ ref={formRef}
+ v-model:formData={formData.value}
+ formItemProps={formItemProps.value}
+ ></DyForm>
+ </div>
+ </BaseDialog>
+ )
+ },
+})
--
Gitblit v1.9.3