arms-app 1.0.82 → 1.0.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/package.json +1 -1
  2. package/public/3.d +38 -0
  3. package/public/2.d +0 -160
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arms-app",
3
- "version": "1.0.82",
3
+ "version": "1.0.84",
4
4
  "description": "一个基于 Express 的 Web 应用1",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/public/3.d ADDED
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Vue2 树形结构中,根据 id 数组修改 disabled(使用 this.$set)
3
+ * @param {Array} tree - 树形数据(原数组)
4
+ * @param {Array<string|number>} ids - 命中的 id 数组
5
+ * @param {boolean} disabledValue - 要设置的 disabled 值
6
+ * @param {string} idKey - id 字段名,默认 'id'
7
+ * @param {string} childrenKey - children 字段名,默认 'children'
8
+ */
9
+ function setDisabledInTreeVue2(
10
+ tree,
11
+ ids,
12
+ disabledValue = true,
13
+ idKey = 'id',
14
+ childrenKey = 'children'
15
+ ) {
16
+ const idSet = new Set(ids);
17
+
18
+ const dfs = (nodes, vm) => {
19
+ if (!Array.isArray(nodes)) return;
20
+
21
+ nodes.forEach((node) => {
22
+ if (!node || typeof node !== 'object') return;
23
+
24
+ // 命中 id,用 $set 保证响应式
25
+ if (idSet.has(node[idKey])) {
26
+ vm.$set(node, 'disabled', disabledValue);
27
+ }
28
+
29
+ // 递归 children
30
+ const children = node[childrenKey];
31
+ if (Array.isArray(children)) {
32
+ dfs(children, vm);
33
+ }
34
+ });
35
+ };
36
+
37
+ dfs(tree, this);
38
+ }
package/public/2.d DELETED
@@ -1,160 +0,0 @@
1
- <template>
2
- <section class="visit-detail-page">
3
- <h1 class="page-title">拜访详情</h1>
4
- <el-form
5
- :model="form"
6
- label-width="90px"
7
- size="small"
8
- class="visit-detail-form"
9
- >
10
- <el-row :gutter="16">
11
- <el-col :span="12">
12
- <el-form-item label="拜访形式">
13
- <el-input v-model="form.visitMode" disabled />
14
- </el-form-item>
15
- </el-col>
16
- <el-col :span="12">
17
- <el-form-item label="再访方式">
18
- <el-input v-model="form.revisitMode" disabled />
19
- </el-form-item>
20
- </el-col>
21
- </el-row>
22
-
23
- <el-row :gutter="16">
24
- <el-col :span="12">
25
- <el-form-item label="拜访时间">
26
- <el-input v-model="form.visitTime" disabled />
27
- </el-form-item>
28
- </el-col>
29
- <el-col :span="12">
30
- <el-form-item label="拜访地点">
31
- <el-input v-model="form.visitLocation" disabled />
32
- </el-form-item>
33
- </el-col>
34
- </el-row>
35
-
36
- <el-row :gutter="16">
37
- <el-col :span="12">
38
- <el-form-item label="拜访人">
39
- <el-input v-model="form.visitor" disabled />
40
- </el-form-item>
41
- </el-col>
42
- <el-col :span="12">
43
- <el-form-item label="被拜访人">
44
- <el-input v-model="form.visitedPerson" disabled />
45
- </el-form-item>
46
- </el-col>
47
- </el-row>
48
-
49
- <el-row :gutter="16">
50
- <el-col :span="12">
51
- <el-form-item label="被拜访人职务">
52
- <el-input v-model="form.visitedTitle" disabled />
53
- </el-form-item>
54
- </el-col>
55
- <el-col :span="12">
56
- <el-form-item label="拜访结果">
57
- <el-input v-model="form.visitResult" disabled />
58
- </el-form-item>
59
- </el-col>
60
- </el-row>
61
-
62
- <el-form-item label="协同人员">
63
- <el-input v-model="form.partners" disabled />
64
- </el-form-item>
65
-
66
- <el-form-item label="拜访内容">
67
- <el-input
68
- v-model="form.visitContent"
69
- type="textarea"
70
- :rows="4"
71
- disabled
72
- />
73
- </el-form-item>
74
-
75
- <el-form-item label="客户诉求">
76
- <el-input
77
- v-model="form.customerRequest"
78
- type="textarea"
79
- :rows="4"
80
- disabled
81
- />
82
- </el-form-item>
83
-
84
- <el-form-item label="影像资料">
85
- <div class="visit-images">
86
- <div
87
- v-for="(item, index) in form.images"
88
- :key="index"
89
- class="visit-image-card"
90
- >
91
- <i class="el-icon-view visit-image-icon" />
92
- </div>
93
- </div>
94
- </el-form-item>
95
- </el-form>
96
- </section>
97
- </template>
98
-
99
- <script>
100
- export default {
101
- name: 'VisitDetailPage',
102
- data() {
103
- return {
104
- form: {
105
- visitMode: '现场拜访',
106
- revisitMode: '再访拜访',
107
- visitTime: '2025-12-12 16:00:00',
108
- visitLocation: '北京市xxxxxxxxxxxx街道xxxxxxxxxxxx号',
109
- visitor: '张三',
110
- visitedPerson: '张三',
111
- visitedTitle: '总经理',
112
- visitResult: '已触达且有业务意向',
113
- partners: '人员A, 人员B, 人员C, 人员D, 人员E',
114
- visitContent: '文案文案文案文案文案文案文案文案文案文案文案文案',
115
- customerRequest: '文案文案文案文案文案文案文案文案文案文案文案文案',
116
- images: [{ id: 1 }, { id: 2 }, { id: 3 }]
117
- }
118
- }
119
- }
120
- }
121
- </script>
122
-
123
- <style scoped>
124
- .visit-detail-page {
125
- padding: 24px;
126
- }
127
- .page-title {
128
- margin-bottom: 16px;
129
- font-size: 18px;
130
- font-weight: 500;
131
- }
132
- .visit-detail-form {
133
- max-width: 900px;
134
- }
135
- .visit-detail-form .el-input.is-disabled .el-input__inner,
136
- .visit-detail-form .el-textarea.is-disabled .el-textarea__inner {
137
- background-color: #f5f7fa;
138
- color: #606266;
139
- }
140
- .visit-images {
141
- display: flex;
142
- gap: 16px;
143
- }
144
- .visit-image-card {
145
- width: 120px;
146
- height: 80px;
147
- border-radius: 4px;
148
- border: 1px solid #dcdfe6;
149
- background-color: #f5f7fa;
150
- display: flex;
151
- align-items: center;
152
- justify-content: center;
153
- cursor: pointer;
154
- }
155
- .visit-image-icon {
156
- font-size: 24px;
157
- color: #909399;
158
- }
159
- </style>
160
-