widget.qw 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 (105) hide show
  1. package/.env.development +10 -10
  2. package/.env.production +8 -8
  3. package/README.md +75 -75
  4. package/build/style.css +471 -471
  5. package/build/widget.qw.es.js +132 -65
  6. package/build/widget.qw.umd.js +132 -65
  7. package/index.html +17 -17
  8. package/package.json +47 -47
  9. package/src/App.vue +26 -26
  10. package/src/api/index.js +165 -165
  11. package/src/components/AuditBar.vue +396 -396
  12. package/src/components/BillCard.vue +164 -164
  13. package/src/components/CascaderPicker.vue +132 -132
  14. package/src/components/CascaderPop.vue +373 -371
  15. package/src/components/CheckGroup.vue +113 -113
  16. package/src/components/DatetimeDropdown.vue +62 -0
  17. package/src/components/{DatetimePicker/index.vue → DatetimePicker.vue} +124 -124
  18. package/src/components/DayDropdown.vue +56 -56
  19. package/src/components/FilePicker.vue +169 -169
  20. package/src/components/Input.vue +80 -80
  21. package/src/components/MonthDropdown.vue +51 -51
  22. package/src/components/MultiPicker.vue +123 -123
  23. package/src/components/ObjsEditor.vue +334 -334
  24. package/src/components/SecretNotify.js +5 -5
  25. package/src/components/Sheet.vue +92 -92
  26. package/src/components/SingleApiPicker.vue +108 -108
  27. package/src/components/SinglePicker.vue +102 -102
  28. package/src/components/SingleUserSelector.vue +425 -425
  29. package/src/components/Switch.vue +64 -64
  30. package/src/components/TreePicker.vue +113 -113
  31. package/src/components/UserPicker.vue +106 -106
  32. package/src/components/UserProfile.vue +129 -129
  33. package/src/components/UsersPicker.vue +118 -118
  34. package/src/components/YearDropdown.vue +59 -59
  35. package/src/components/data_selector.vue +303 -303
  36. package/src/components/image_picker.vue +123 -123
  37. package/src/components/images_picker.vue +195 -195
  38. package/src/components/index.js +167 -162
  39. package/src/components/mult_list_selector.vue +155 -155
  40. package/src/components/subdepartment_selector.vue +481 -481
  41. package/src/components/user_selector.vue +639 -639
  42. package/src/components/widget/DataPop.vue +95 -95
  43. package/src/components/{DatetimePicker → widget}/DatetimePop.vue +342 -342
  44. package/src/components/widget/TreePop.vue +88 -88
  45. package/src/components/widget/UserPop.vue +347 -347
  46. package/src/main.js +117 -117
  47. package/src/router/index.ts +178 -173
  48. package/src/util/array_util.js +32 -32
  49. package/src/util/auth_util.js +72 -72
  50. package/src/util/bool_util.js +5 -5
  51. package/src/util/bus.js +1 -1
  52. package/src/util/cache_util.js +18 -18
  53. package/src/util/errer_code.js +6 -6
  54. package/src/util/eval_util.js +19 -19
  55. package/src/util/icon_util.js +36 -36
  56. package/src/util/image_util.js +27 -27
  57. package/src/util/index.js +57 -57
  58. package/src/util/num_util.js +70 -70
  59. package/src/util/obj_util.js +28 -28
  60. package/src/util/request.js +73 -73
  61. package/src/util/request_json.js +71 -71
  62. package/src/util/request_json_mute.js +65 -65
  63. package/src/util/request_upload.js +79 -79
  64. package/src/util/route_util.js +31 -31
  65. package/src/util/str_util.js +143 -143
  66. package/src/util/time_util.js +406 -406
  67. package/src/util/toast_util.js +24 -24
  68. package/src/util/tree_util.js +153 -153
  69. package/src/util/uuid_util.js +9 -9
  70. package/src/util/validate.js +182 -182
  71. package/src/util/vue_filter.js +223 -223
  72. package/src/views/auditbar/index.vue +78 -78
  73. package/src/views/billcard/index.vue +48 -48
  74. package/src/views/cascaderpicker/index.vue +0 -0
  75. package/src/views/cascaderpop/index.vue +90 -90
  76. package/src/views/checkgroup/index.vue +35 -35
  77. package/src/views/dataSelector/index.vue +48 -48
  78. package/src/views/datetimedropdown/index.vue +34 -0
  79. package/src/views/datetimepicker/index.vue +34 -34
  80. package/src/views/daydropdown/index.vue +31 -31
  81. package/src/views/filepicker/index.vue +32 -32
  82. package/src/views/home/index.vue +0 -0
  83. package/src/views/imagepicker/index.vue +31 -31
  84. package/src/views/imagespicker/index.vue +37 -37
  85. package/src/views/input/index.vue +35 -35
  86. package/src/views/monthdropdown/index.vue +31 -31
  87. package/src/views/multListSelector/index.vue +61 -61
  88. package/src/views/multipicker/index.vue +36 -36
  89. package/src/views/objseditor/index.vue +277 -277
  90. package/src/views/productSelector/index.vue +35 -35
  91. package/src/views/projectpicker/index.vue +41 -41
  92. package/src/views/secretnotify/index.vue +27 -27
  93. package/src/views/sheet/index.vue +45 -45
  94. package/src/views/singlepicker/index.vue +35 -35
  95. package/src/views/subdepartmentSelector/index.vue +40 -40
  96. package/src/views/switch/index.vue +34 -34
  97. package/src/views/treepicker/index.vue +41 -41
  98. package/src/views/userSelector/index.vue +54 -54
  99. package/src/views/userSelectorNew/index.vue +45 -45
  100. package/src/views/userpicker/index.vue +43 -43
  101. package/src/views/userprofile/index.vue +30 -30
  102. package/src/views/userspicker/index.vue +43 -43
  103. package/src/views/yeardropdown/index.vue +32 -32
  104. package/src/vm/index.js +1 -1
  105. package/vite.config.ts +122 -122
@@ -1,49 +1,49 @@
1
- <template>
2
- <div class="page">
3
- <widget-qw-bill-card :category="data.category" :no="data.no" :userState="data.loginUserState"
4
- :processState="data.processState" :fields="data.fields">
5
-
6
- <template #foot>
7
- <div style="text-align: right;">
8
- <van-button type="warning" size="small">警告按钮</van-button>
9
- </div>
10
- </template>
11
- </widget-qw-bill-card>
12
- </div>
13
- </template>
14
-
15
- <script setup>
16
- import { onMounted, reactive, watch } from "vue";
17
-
18
- const data = reactive({
19
- category: '作业单',
20
- no: '123',
21
- loginUserState: 'pass',
22
- processState: 'finish_pass',
23
- fields: [{
24
- title: '字段1',
25
- value: '一号门与二号门之间前花园1',
26
- }, {
27
- title: '字段2',
28
- value: '一号门与二号门之间前花园2',
29
- }]
30
- })
31
-
32
- watch(() => data.codes, (newVal, oldVal) => {
33
- console.log(newVal, oldVal)
34
- })
35
- </script>
36
-
37
- <style lang="scss" scoped>
38
- .page {
39
- height: 100vh;
40
- background: #fff;
41
- text-align: center;
42
- background-size: cover;
43
- display: flex;
44
- flex-direction: column;
45
- justify-content: flex-start;
46
- padding: 80px 15px 0 15px;
47
- box-sizing: border-box;
48
- }
1
+ <template>
2
+ <div class="page">
3
+ <widget-qw-bill-card :category="data.category" :no="data.no" :userState="data.loginUserState"
4
+ :processState="data.processState" :fields="data.fields">
5
+
6
+ <template #foot>
7
+ <div style="text-align: right;">
8
+ <van-button type="warning" size="small">警告按钮</van-button>
9
+ </div>
10
+ </template>
11
+ </widget-qw-bill-card>
12
+ </div>
13
+ </template>
14
+
15
+ <script setup>
16
+ import { onMounted, reactive, watch } from "vue";
17
+
18
+ const data = reactive({
19
+ category: '作业单',
20
+ no: '123',
21
+ loginUserState: 'pass',
22
+ processState: 'finish_pass',
23
+ fields: [{
24
+ title: '字段1',
25
+ value: '一号门与二号门之间前花园1',
26
+ }, {
27
+ title: '字段2',
28
+ value: '一号门与二号门之间前花园2',
29
+ }]
30
+ })
31
+
32
+ watch(() => data.codes, (newVal, oldVal) => {
33
+ console.log(newVal, oldVal)
34
+ })
35
+ </script>
36
+
37
+ <style lang="scss" scoped>
38
+ .page {
39
+ height: 100vh;
40
+ background: #fff;
41
+ text-align: center;
42
+ background-size: cover;
43
+ display: flex;
44
+ flex-direction: column;
45
+ justify-content: flex-start;
46
+ padding: 80px 15px 0 15px;
47
+ box-sizing: border-box;
48
+ }
49
49
  </style>
Binary file
@@ -1,91 +1,91 @@
1
- <template>
2
- <div class="page">
3
- <van-button @click="data.isShow=true">弹出</van-button>
4
- <widget-qw-cascader-pop v-model="data.id" v-model:show="data.isShow"
5
- label="零件" placeholder="请选择零件"
6
- :queryNodes="queryNodes" :queryNode="queryNode" @select="onSelect" />
7
- </div>
8
- </template>
9
-
10
- <script setup>
11
- import { onMounted, reactive, watch } from "vue";
12
- import util from '@/util'
13
-
14
- const data = reactive({
15
- auth: 'require',
16
- id: '',
17
- isShow: false,
18
- projectId: 'GnsMl3mO'
19
- })
20
-
21
- const queryNodes = async (params, setNodes) => {
22
- if (!data.projectId)
23
- return
24
-
25
- let p = {
26
- projectId: data.projectId,
27
- hasChildren: false
28
- }
29
-
30
- if (params.keyword)
31
- p.keyword = params.keyword
32
-
33
- if (params.parentId)
34
- p.parentId = params.parentId
35
-
36
- let res = await util.part_children(p)
37
- if (res.code != 200)
38
- return
39
-
40
- let formatNodes = res.data.map(item => {
41
- return {
42
- id: item.id,
43
- label: item.formatName,
44
- formatLabel: item.path,
45
- hasChildren: item.hasChildren,
46
- data: item
47
- }
48
- })
49
- setNodes(formatNodes)
50
- }
51
-
52
- const queryNode = async (setNode) => {
53
- let params = {
54
- id: data.id
55
- }
56
- let res = await util.part_detail(params)
57
- if (res.code != 200)
58
- return
59
-
60
- let formatNode = {
61
- id: res.data.id,
62
- label: res.data.formatName,
63
- formatLabel: item.path,
64
- hasChildren: res.data.hasChildren,
65
- data: res.data
66
- }
67
- setNode(formatNode)
68
- }
69
-
70
- const onSelect=(node)=>{
71
- console.log('onSelect',node)
72
- }
73
-
74
- watch(() => data.id, (newVal, oldVal) => {
75
- console.log(newVal, oldVal)
76
- })
77
- </script>
78
-
79
- <style lang="scss" scoped>
80
- .page {
81
- height: 100vh;
82
- background: #fff;
83
- text-align: center;
84
- background-size: cover;
85
- display: flex;
86
- flex-direction: column;
87
- justify-content: flex-start;
88
- padding: 80px 15px 0 15px;
89
- box-sizing: border-box;
90
- }
1
+ <template>
2
+ <div class="page">
3
+ <van-button @click="data.isShow=true">弹出</van-button>
4
+ <widget-qw-cascader-pop v-model="data.id" v-model:show="data.isShow"
5
+ label="零件" placeholder="请选择零件"
6
+ :queryNodes="queryNodes" :queryNode="queryNode" @select="onSelect" />
7
+ </div>
8
+ </template>
9
+
10
+ <script setup>
11
+ import { onMounted, reactive, watch } from "vue";
12
+ import util from '@/util'
13
+
14
+ const data = reactive({
15
+ auth: 'require',
16
+ id: '',
17
+ isShow: false,
18
+ projectId: 'GnsMl3mO'
19
+ })
20
+
21
+ const queryNodes = async (params, setNodes) => {
22
+ if (!data.projectId)
23
+ return
24
+
25
+ let p = {
26
+ projectId: data.projectId,
27
+ hasChildren: false
28
+ }
29
+
30
+ if (params.keyword)
31
+ p.keyword = params.keyword
32
+
33
+ if (params.parentId)
34
+ p.parentId = params.parentId
35
+
36
+ let res = await util.part_children(p)
37
+ if (res.code != 200)
38
+ return
39
+
40
+ let formatNodes = res.data.map(item => {
41
+ return {
42
+ id: item.id,
43
+ label: item.formatName,
44
+ formatLabel: item.path,
45
+ hasChildren: item.hasChildren,
46
+ data: item
47
+ }
48
+ })
49
+ setNodes(formatNodes)
50
+ }
51
+
52
+ const queryNode = async (setNode) => {
53
+ let params = {
54
+ id: data.id
55
+ }
56
+ let res = await util.part_detail(params)
57
+ if (res.code != 200)
58
+ return
59
+
60
+ let formatNode = {
61
+ id: res.data.id,
62
+ label: res.data.formatName,
63
+ formatLabel: item.path,
64
+ hasChildren: res.data.hasChildren,
65
+ data: res.data
66
+ }
67
+ setNode(formatNode)
68
+ }
69
+
70
+ const onSelect=(node)=>{
71
+ console.log('onSelect',node)
72
+ }
73
+
74
+ watch(() => data.id, (newVal, oldVal) => {
75
+ console.log(newVal, oldVal)
76
+ })
77
+ </script>
78
+
79
+ <style lang="scss" scoped>
80
+ .page {
81
+ height: 100vh;
82
+ background: #fff;
83
+ text-align: center;
84
+ background-size: cover;
85
+ display: flex;
86
+ flex-direction: column;
87
+ justify-content: flex-start;
88
+ padding: 80px 15px 0 15px;
89
+ box-sizing: border-box;
90
+ }
91
91
  </style>
@@ -1,36 +1,36 @@
1
- <template>
2
- <div class="page">
3
- <widget-qw-check-group
4
- v-model="data.codes"
5
- id="fire_builder_checks"
6
- label="船舶建造师确认内容"
7
- :auth="data.auth" />
8
- </div>
9
- </template>
10
-
11
- <script setup>
12
- import { onMounted, reactive, watch } from "vue";
13
-
14
- const data = reactive({
15
- auth:'require',
16
- codes:null
17
- })
18
-
19
- watch(()=>data.codes,(newVal,oldVal)=>{
20
- console.log(newVal,oldVal)
21
- })
22
- </script>
23
-
24
- <style lang="scss" scoped>
25
- .page {
26
- height: 100vh;
27
- background: #fff;
28
- text-align: center;
29
- background-size: cover;
30
- display: flex;
31
- flex-direction: column;
32
- justify-content: flex-start;
33
- padding: 80px 15px 0 15px;
34
- box-sizing: border-box;
35
- }
1
+ <template>
2
+ <div class="page">
3
+ <widget-qw-check-group
4
+ v-model="data.codes"
5
+ id="fire_builder_checks"
6
+ label="船舶建造师确认内容"
7
+ :auth="data.auth" />
8
+ </div>
9
+ </template>
10
+
11
+ <script setup>
12
+ import { onMounted, reactive, watch } from "vue";
13
+
14
+ const data = reactive({
15
+ auth:'require',
16
+ codes:null
17
+ })
18
+
19
+ watch(()=>data.codes,(newVal,oldVal)=>{
20
+ console.log(newVal,oldVal)
21
+ })
22
+ </script>
23
+
24
+ <style lang="scss" scoped>
25
+ .page {
26
+ height: 100vh;
27
+ background: #fff;
28
+ text-align: center;
29
+ background-size: cover;
30
+ display: flex;
31
+ flex-direction: column;
32
+ justify-content: flex-start;
33
+ padding: 80px 15px 0 15px;
34
+ box-sizing: border-box;
35
+ }
36
36
  </style>
@@ -1,49 +1,49 @@
1
- <template>
2
- <div class="page">
3
- <widget-qw-data-selector :options="options" v-model="formData.singleSelect" label="单选数据"
4
- placeholder="单选数据" :auth="formData.auth" />
5
- <widget-qw-data-selector :options="options" v-model="formData.multSelect" multiple label="多选数据"
6
- placeholder="多选数据" :required="true" :readonly="false" />
7
- </div>
8
- </template>
9
-
10
- <script setup>
11
- import QueryString from "qs";
12
- import { ref, onMounted, reactive, watch } from "vue";
13
-
14
- const formData = ref({
15
- singleSelect: '',
16
- multSelect: [],
17
- apiSelect: '',
18
- auth: 'option'
19
- })
20
-
21
- // 数据选项
22
- const options = ref([
23
- { text: '火灾', value: '火灾' },
24
- { text: '灼烫', value: '灼烫' },
25
- { text: '触电', value: '触电' },
26
- { text: '中毒和窒息', value: '中毒和窒息' },
27
- { text: '物体打击', value: '物体打击' },
28
- { text: '高处坠落', value: '高处坠落' },
29
- { text: '其他', value: '其他', },
30
- { text: '一号门与二号门之间前花园', value: '一号门与二号门之间前花园' }
31
- ])
32
-
33
- onMounted(() => {
34
- })
35
- </script>
36
-
37
- <style lang="scss" scoped>
38
- .page {
39
- height: 100vh;
40
- background: #fff;
41
- text-align: center;
42
- background-size: cover;
43
- display: flex;
44
- flex-direction: column;
45
- justify-content: flex-start;
46
- padding: 80px 15px 0 15px;
47
- box-sizing: border-box;
48
- }
1
+ <template>
2
+ <div class="page">
3
+ <widget-qw-data-selector :options="options" v-model="formData.singleSelect" label="单选数据"
4
+ placeholder="单选数据" :auth="formData.auth" />
5
+ <widget-qw-data-selector :options="options" v-model="formData.multSelect" multiple label="多选数据"
6
+ placeholder="多选数据" :required="true" :readonly="false" />
7
+ </div>
8
+ </template>
9
+
10
+ <script setup>
11
+ import QueryString from "qs";
12
+ import { ref, onMounted, reactive, watch } from "vue";
13
+
14
+ const formData = ref({
15
+ singleSelect: '',
16
+ multSelect: [],
17
+ apiSelect: '',
18
+ auth: 'option'
19
+ })
20
+
21
+ // 数据选项
22
+ const options = ref([
23
+ { text: '火灾', value: '火灾' },
24
+ { text: '灼烫', value: '灼烫' },
25
+ { text: '触电', value: '触电' },
26
+ { text: '中毒和窒息', value: '中毒和窒息' },
27
+ { text: '物体打击', value: '物体打击' },
28
+ { text: '高处坠落', value: '高处坠落' },
29
+ { text: '其他', value: '其他', },
30
+ { text: '一号门与二号门之间前花园', value: '一号门与二号门之间前花园' }
31
+ ])
32
+
33
+ onMounted(() => {
34
+ })
35
+ </script>
36
+
37
+ <style lang="scss" scoped>
38
+ .page {
39
+ height: 100vh;
40
+ background: #fff;
41
+ text-align: center;
42
+ background-size: cover;
43
+ display: flex;
44
+ flex-direction: column;
45
+ justify-content: flex-start;
46
+ padding: 80px 15px 0 15px;
47
+ box-sizing: border-box;
48
+ }
49
49
  </style>
@@ -0,0 +1,34 @@
1
+ <template>
2
+ <div class="page">
3
+ <van-dropdown-menu>
4
+ <WidgetQwDatetimeDropdown v-model="data.date" label="时间" :auth="data.auth" />
5
+ </van-dropdown-menu>
6
+ </div>
7
+ </template>
8
+
9
+ <script setup>
10
+ import { onMounted, reactive, watch } from "vue";
11
+
12
+ const data = reactive({
13
+ auth: 'disabled',
14
+ date: ''
15
+ })
16
+
17
+ watch(() => data.codes, (newVal, oldVal) => {
18
+ console.log(newVal, oldVal)
19
+ })
20
+ </script>
21
+
22
+ <style lang="scss" scoped>
23
+ .page {
24
+ height: 100vh;
25
+ background: #fff;
26
+ text-align: center;
27
+ background-size: cover;
28
+ display: flex;
29
+ flex-direction: column;
30
+ justify-content: flex-start;
31
+ padding: 80px 15px 0 15px;
32
+ box-sizing: border-box;
33
+ }
34
+ </style>
@@ -1,35 +1,35 @@
1
- <template>
2
- <div class="page">
3
- <WidgetQwDatetimePicker
4
- v-model="data.date"
5
- label="时间"
6
- :auth="data.auth" />
7
- </div>
8
- </template>
9
-
10
- <script setup>
11
- import { onMounted, reactive, watch } from "vue";
12
-
13
- const data = reactive({
14
- auth:'disabled',
15
- date:'2025-01-01 01:02:03'
16
- })
17
-
18
- watch(()=>data.codes,(newVal,oldVal)=>{
19
- console.log(newVal,oldVal)
20
- })
21
- </script>
22
-
23
- <style lang="scss" scoped>
24
- .page {
25
- height: 100vh;
26
- background: #fff;
27
- text-align: center;
28
- background-size: cover;
29
- display: flex;
30
- flex-direction: column;
31
- justify-content: flex-start;
32
- padding: 80px 15px 0 15px;
33
- box-sizing: border-box;
34
- }
1
+ <template>
2
+ <div class="page">
3
+ <WidgetQwDatetimePicker
4
+ v-model="data.date"
5
+ label="时间"
6
+ :auth="data.auth" />
7
+ </div>
8
+ </template>
9
+
10
+ <script setup>
11
+ import { onMounted, reactive, watch } from "vue";
12
+
13
+ const data = reactive({
14
+ auth:'disabled',
15
+ date:'2025-01-01 01:02:03'
16
+ })
17
+
18
+ watch(()=>data.codes,(newVal,oldVal)=>{
19
+ console.log(newVal,oldVal)
20
+ })
21
+ </script>
22
+
23
+ <style lang="scss" scoped>
24
+ .page {
25
+ height: 100vh;
26
+ background: #fff;
27
+ text-align: center;
28
+ background-size: cover;
29
+ display: flex;
30
+ flex-direction: column;
31
+ justify-content: flex-start;
32
+ padding: 80px 15px 0 15px;
33
+ box-sizing: border-box;
34
+ }
35
35
  </style>
@@ -1,31 +1,31 @@
1
- <template>
2
- <div class="page">
3
- <van-dropdown-menu>
4
- <widget-qw-day-dropdown v-model="formData.day" year="2025" month="2" />
5
- </van-dropdown-menu>
6
- </div>
7
- </template>
8
-
9
- <script setup>
10
- import { reactive, onMounted } from "vue";
11
- const formData = reactive({
12
- day: 0
13
- })
14
-
15
- onMounted(() => {
16
- })
17
- </script>
18
-
19
- <style lang="scss" scoped>
20
- .page {
21
- height: 100vh;
22
- background: #fff;
23
- text-align: center;
24
- background-size: cover;
25
- display: flex;
26
- flex-direction: column;
27
- justify-content: flex-start;
28
- padding: 80px 15px 0 15px;
29
- box-sizing: border-box;
30
- }
31
- </style>
1
+ <template>
2
+ <div class="page">
3
+ <van-dropdown-menu>
4
+ <widget-qw-day-dropdown v-model="formData.day" year="2025" month="2" />
5
+ </van-dropdown-menu>
6
+ </div>
7
+ </template>
8
+
9
+ <script setup>
10
+ import { reactive, onMounted } from "vue";
11
+ const formData = reactive({
12
+ day: 0
13
+ })
14
+
15
+ onMounted(() => {
16
+ })
17
+ </script>
18
+
19
+ <style lang="scss" scoped>
20
+ .page {
21
+ height: 100vh;
22
+ background: #fff;
23
+ text-align: center;
24
+ background-size: cover;
25
+ display: flex;
26
+ flex-direction: column;
27
+ justify-content: flex-start;
28
+ padding: 80px 15px 0 15px;
29
+ box-sizing: border-box;
30
+ }
31
+ </style>