@gonsin/gview 1.0.1-alpha.0
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.
- package/.browserslistrc +2 -0
- package/README.md +26 -0
- package/babel.config.js +5 -0
- package/package.json +29 -0
- package/postcss.config.js +5 -0
- package/public/css/theme/animate.min.css +7 -0
- package/public/css/theme/brownishTheme.css +10 -0
- package/public/css/theme/coffeeTheme.css +10 -0
- package/public/css/theme/cyanTheme.css +10 -0
- package/public/css/theme/defaultTheme.css +10 -0
- package/public/css/theme/greenTheme.css +16 -0
- package/public/css/theme/greyTheme.css +10 -0
- package/public/css/theme/orangeTheme.css +10 -0
- package/public/css/theme/purpleTheme.css +10 -0
- package/public/css/theme/skyblueTheme.css +10 -0
- package/public/favicon.ico +0 -0
- package/public/imgs/antOutline-border.png +0 -0
- package/public/imgs/bg.png +0 -0
- package/public/imgs/logo.png +0 -0
- package/public/imgs/menu.png +0 -0
- package/public/index.html +17 -0
- package/src/App.vue +143 -0
- package/src/api/api.js +28 -0
- package/src/api/index.js +31 -0
- package/src/api/request.js +210 -0
- package/src/assets/font/font.scss +12 -0
- package/src/assets/font/font_dev.scss +12 -0
- package/src/assets/font/icon.scss +179 -0
- package/src/assets/images/svg/color.svg +1 -0
- package/src/assets/logo.png +0 -0
- package/src/assets/scss/common.scss +338 -0
- package/src/assets/scss/themeColor.scss +35 -0
- package/src/components/MyDialog.vue +251 -0
- package/src/components/MyForm.vue +324 -0
- package/src/components/MyFormAutocomplete.vue +135 -0
- package/src/components/MyFormCascader.vue +107 -0
- package/src/components/MyFormCheckBox.vue +67 -0
- package/src/components/MyFormEditor.vue +85 -0
- package/src/components/MyFormInput.vue +68 -0
- package/src/components/MyFormLine.vue +49 -0
- package/src/components/MyFormRadio.vue +92 -0
- package/src/components/MyFormSelect.vue +122 -0
- package/src/components/MyFormSelectDate.vue +72 -0
- package/src/components/MyFormSelectDateTime.vue +82 -0
- package/src/components/MyFormSelectTime.vue +84 -0
- package/src/components/MyFormSwitch.vue +60 -0
- package/src/components/MyFormTag.vue +67 -0
- package/src/components/MyFormTree.vue +137 -0
- package/src/components/MyFormUploads.vue +91 -0
- package/src/components/MyHeader.vue +176 -0
- package/src/components/MyMenus.vue +150 -0
- package/src/components/MyPageHeader.vue +344 -0
- package/src/components/MyTab.vue +69 -0
- package/src/components/MyTable.vue +245 -0
- package/src/components/Templatess.vue +630 -0
- package/src/index.js +23 -0
- package/src/main.js +86 -0
- package/src/router.js +52 -0
- package/src/store/index.js +71 -0
- package/src/utils/common.js +96 -0
- package/src/utils/permission.js +36 -0
- package/src/views/GView.vue +185 -0
- package/src/views/Home.vue +26 -0
- package/src/views/Login.vue +249 -0
- package/src/websocket/test.js +140 -0
- package/src/websocket/websocket.js +141 -0
- package/src/websocket/websocket1.js +117 -0
- package/src/websocket/websocket2.js +128 -0
- package/vue.config.js +42 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
* @Author: your name
|
|
3
|
+
* @Date: 2022-04-29 16:16:26
|
|
4
|
+
* @LastEditTime: 2022-05-04 09:35:20
|
|
5
|
+
* @LastEditors: lzx lzx@gonsin.cn
|
|
6
|
+
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
7
|
+
* @FilePath: \gview\src\components\MyFormAutocomplete copy 3.vue
|
|
8
|
+
-->
|
|
9
|
+
<!--
|
|
10
|
+
* @Author: your name
|
|
11
|
+
* @Date: 2022-04-28 15:10:38
|
|
12
|
+
* @LastEditTime: 2022-04-28 15:21:02
|
|
13
|
+
* @LastEditors: Please set LastEditors
|
|
14
|
+
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
15
|
+
* @FilePath: \gview\src\components\MyFormCheckBox copy.vue
|
|
16
|
+
-->
|
|
17
|
+
|
|
18
|
+
<template>
|
|
19
|
+
<div class="my_ueditor">
|
|
20
|
+
<quill-editor
|
|
21
|
+
:content="content"
|
|
22
|
+
:options="editorOption"
|
|
23
|
+
@change="onEditorChange($event)"
|
|
24
|
+
/>
|
|
25
|
+
</div>
|
|
26
|
+
</template>
|
|
27
|
+
|
|
28
|
+
<script>
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
import "quill/dist/quill.core.css";
|
|
32
|
+
import "quill/dist/quill.snow.css";
|
|
33
|
+
import "quill/dist/quill.bubble.css";
|
|
34
|
+
import { quillEditor } from "vue-quill-editor";
|
|
35
|
+
export default {
|
|
36
|
+
props: {
|
|
37
|
+
value: {
|
|
38
|
+
type: Boolean,
|
|
39
|
+
default: false,
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
watch: {
|
|
43
|
+
value() {
|
|
44
|
+
this.childData = this.value;
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
components: {
|
|
48
|
+
quillEditor,
|
|
49
|
+
},
|
|
50
|
+
data() {
|
|
51
|
+
return {
|
|
52
|
+
content: '<h2>I am Example</h2>',
|
|
53
|
+
editorOption: {
|
|
54
|
+
|
|
55
|
+
},
|
|
56
|
+
childData: "",
|
|
57
|
+
};
|
|
58
|
+
},
|
|
59
|
+
created() {
|
|
60
|
+
|
|
61
|
+
},
|
|
62
|
+
computed: {
|
|
63
|
+
editor() {
|
|
64
|
+
return this.$refs.myQuillEditor.quill;
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
mounted() {
|
|
68
|
+
|
|
69
|
+
},
|
|
70
|
+
methods: {
|
|
71
|
+
onEditorChange({ quill, html, text }) {
|
|
72
|
+
console.log("editor change!", quill, html, text);
|
|
73
|
+
this.content = html;
|
|
74
|
+
},
|
|
75
|
+
forceUpdate(e) {
|
|
76
|
+
this.$emit("update:value", e);
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
destroyed() {
|
|
80
|
+
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
</script>
|
|
84
|
+
<style lang="scss" scoped>
|
|
85
|
+
</style>
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
* @Author: your name
|
|
3
|
+
* @Date: 2022-04-28 09:30:27
|
|
4
|
+
* @LastEditTime: 2022-11-19 14:43:41
|
|
5
|
+
* @LastEditors: lrm lrm@gonsin.cn
|
|
6
|
+
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
7
|
+
* @FilePath: \client\src\components\MyFormInput.vue
|
|
8
|
+
-->
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<div class="my_input">
|
|
12
|
+
<el-input
|
|
13
|
+
:prefix-icon="icon"
|
|
14
|
+
v-model="childData"
|
|
15
|
+
:placeholder="placeholders"
|
|
16
|
+
:size="size"
|
|
17
|
+
@input="forceUpdate($event)"
|
|
18
|
+
></el-input>
|
|
19
|
+
</div>
|
|
20
|
+
</template>
|
|
21
|
+
|
|
22
|
+
<script>
|
|
23
|
+
export default {
|
|
24
|
+
props: {
|
|
25
|
+
placeholders:{
|
|
26
|
+
type:String
|
|
27
|
+
},
|
|
28
|
+
value:{
|
|
29
|
+
type:String | Number
|
|
30
|
+
},
|
|
31
|
+
targetViewName:{
|
|
32
|
+
type:String
|
|
33
|
+
},
|
|
34
|
+
size:{
|
|
35
|
+
type:String,
|
|
36
|
+
default:'medium',
|
|
37
|
+
},
|
|
38
|
+
icon:{
|
|
39
|
+
type:String,
|
|
40
|
+
default:'',
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
watch:{
|
|
44
|
+
value(){
|
|
45
|
+
this.childData = this.value
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
components: {
|
|
49
|
+
},
|
|
50
|
+
data() {
|
|
51
|
+
return {
|
|
52
|
+
childData:this.value,
|
|
53
|
+
};
|
|
54
|
+
},
|
|
55
|
+
mounted(){
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
},
|
|
59
|
+
methods: {
|
|
60
|
+
forceUpdate(e) {
|
|
61
|
+
// this.$forceUpdate(); // @change="forceUpdate($event)"主要是解决clear图标响应问题
|
|
62
|
+
this.$emit('update:value',e)
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
</script>
|
|
67
|
+
<style lang="scss" scoped>
|
|
68
|
+
</style>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
* @Author: your name
|
|
3
|
+
* @Date: 2022-04-29 11:45:59
|
|
4
|
+
* @LastEditTime: 2022-04-29 11:46:20
|
|
5
|
+
* @LastEditors: Please set LastEditors
|
|
6
|
+
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
7
|
+
* @FilePath: \gview\src\components\MyFormAutocomplete copy.vue
|
|
8
|
+
-->
|
|
9
|
+
<!--
|
|
10
|
+
* @Author: your name
|
|
11
|
+
* @Date: 2022-04-28 15:10:38
|
|
12
|
+
* @LastEditTime: 2022-04-28 15:21:02
|
|
13
|
+
* @LastEditors: Please set LastEditors
|
|
14
|
+
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
15
|
+
* @FilePath: \gview\src\components\MyFormCheckBox copy.vue
|
|
16
|
+
-->
|
|
17
|
+
|
|
18
|
+
<template>
|
|
19
|
+
<div class="my_line">
|
|
20
|
+
<el-divider></el-divider>
|
|
21
|
+
</div>
|
|
22
|
+
</template>
|
|
23
|
+
|
|
24
|
+
<script>
|
|
25
|
+
export default {
|
|
26
|
+
props: {
|
|
27
|
+
|
|
28
|
+
},
|
|
29
|
+
watch:{
|
|
30
|
+
|
|
31
|
+
},
|
|
32
|
+
components: {
|
|
33
|
+
},
|
|
34
|
+
data() {
|
|
35
|
+
return {
|
|
36
|
+
|
|
37
|
+
};
|
|
38
|
+
},
|
|
39
|
+
mounted(){
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
},
|
|
43
|
+
methods: {
|
|
44
|
+
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
</script>
|
|
48
|
+
<style lang="scss" scoped>
|
|
49
|
+
</style>
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
* @Author: your name
|
|
3
|
+
* @Date: 2022-04-29 16:16:09
|
|
4
|
+
* @LastEditTime: 2022-11-17 15:22:40
|
|
5
|
+
* @LastEditors: lrm lrm@gonsin.cn
|
|
6
|
+
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
7
|
+
* @FilePath: \client\src\components\MyFormRadio.vue
|
|
8
|
+
-->
|
|
9
|
+
<template>
|
|
10
|
+
<div class="my_radio">
|
|
11
|
+
<el-radio-group v-model="childData" @change="forceUpdate">
|
|
12
|
+
<el-radio
|
|
13
|
+
:label="item.value"
|
|
14
|
+
v-for="(item,index) in selectList"
|
|
15
|
+
:key="index">
|
|
16
|
+
{{item.label}}
|
|
17
|
+
</el-radio>
|
|
18
|
+
</el-radio-group>
|
|
19
|
+
</div>
|
|
20
|
+
</template>
|
|
21
|
+
|
|
22
|
+
<script>
|
|
23
|
+
import * as api from '../api'
|
|
24
|
+
|
|
25
|
+
export default {
|
|
26
|
+
props: {
|
|
27
|
+
value:{
|
|
28
|
+
type: Number | Boolean | String,
|
|
29
|
+
default:'',
|
|
30
|
+
},
|
|
31
|
+
target:{
|
|
32
|
+
type: Object
|
|
33
|
+
},
|
|
34
|
+
targetViewName:{
|
|
35
|
+
type: String
|
|
36
|
+
},
|
|
37
|
+
size:{
|
|
38
|
+
type: String,
|
|
39
|
+
default:'medium',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
data() {
|
|
43
|
+
return {
|
|
44
|
+
childData: this.value,
|
|
45
|
+
selectList: [],
|
|
46
|
+
};
|
|
47
|
+
},
|
|
48
|
+
watch:{
|
|
49
|
+
value(){
|
|
50
|
+
this.childData = this.value
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
components: {
|
|
54
|
+
},
|
|
55
|
+
mounted(){
|
|
56
|
+
this.getSelect(this.target);
|
|
57
|
+
},
|
|
58
|
+
methods: {
|
|
59
|
+
forceUpdate(e) {
|
|
60
|
+
this.$emit('update:value',e)
|
|
61
|
+
},
|
|
62
|
+
//获取下拉的数据
|
|
63
|
+
getSelect(item) {
|
|
64
|
+
api
|
|
65
|
+
.getViewData({
|
|
66
|
+
viewName: this.targetViewName,
|
|
67
|
+
dataId:item.listData.dataId,
|
|
68
|
+
})
|
|
69
|
+
.then((res) => {
|
|
70
|
+
if (res.data.state == 200) {
|
|
71
|
+
let list = res.data.data;
|
|
72
|
+
|
|
73
|
+
if (list != null && list.length != 0) {
|
|
74
|
+
let arr = [];
|
|
75
|
+
list.forEach((items) => {
|
|
76
|
+
arr.push({
|
|
77
|
+
label: items[item.listData.keyName],
|
|
78
|
+
value: JSON.parse(items[item.listData.valueName]),
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
this.selectList = arr;
|
|
82
|
+
}
|
|
83
|
+
} else {
|
|
84
|
+
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
</script>
|
|
91
|
+
<style lang="scss" scoped>
|
|
92
|
+
</style>
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
* @Author: your name
|
|
3
|
+
* @Date: 2022-04-28 09:30:27
|
|
4
|
+
* @LastEditTime: 2022-11-21 11:12:48
|
|
5
|
+
* @LastEditors: lrm lrm@gonsin.cn
|
|
6
|
+
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
7
|
+
* @FilePath: \client\src\components\MyFormSelect.vue
|
|
8
|
+
-->
|
|
9
|
+
<!--
|
|
10
|
+
* @Author: your name
|
|
11
|
+
* @Date: 2022-04-22 15:51:20
|
|
12
|
+
* @LastEditTime: 2022-04-27 17:47:53
|
|
13
|
+
* @LastEditors: Please set LastEditors
|
|
14
|
+
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
15
|
+
* @FilePath: \gview\src\components\MyDialog.vue
|
|
16
|
+
-->
|
|
17
|
+
|
|
18
|
+
<template>
|
|
19
|
+
<div class="my_select">
|
|
20
|
+
<el-select
|
|
21
|
+
v-model="childData"
|
|
22
|
+
:size="size"
|
|
23
|
+
:multiple="multi"
|
|
24
|
+
:placeholder="target.name"
|
|
25
|
+
@change="forceUpdate($event)"
|
|
26
|
+
>
|
|
27
|
+
<el-option
|
|
28
|
+
v-for="item in selectList"
|
|
29
|
+
:key="item.value"
|
|
30
|
+
:label="item.label"
|
|
31
|
+
:value="item.value"
|
|
32
|
+
>
|
|
33
|
+
</el-option>
|
|
34
|
+
</el-select>
|
|
35
|
+
</div>
|
|
36
|
+
</template>
|
|
37
|
+
|
|
38
|
+
<script>
|
|
39
|
+
import * as api from '../api'
|
|
40
|
+
|
|
41
|
+
export default {
|
|
42
|
+
props: {
|
|
43
|
+
value:{
|
|
44
|
+
type:String | Number
|
|
45
|
+
},
|
|
46
|
+
target:{
|
|
47
|
+
type:Object
|
|
48
|
+
},
|
|
49
|
+
targetViewName:{
|
|
50
|
+
type:String
|
|
51
|
+
},
|
|
52
|
+
size:{
|
|
53
|
+
type:String,
|
|
54
|
+
default:'medium',
|
|
55
|
+
},
|
|
56
|
+
multi:{
|
|
57
|
+
type:Boolean,
|
|
58
|
+
default:false,
|
|
59
|
+
},
|
|
60
|
+
isSearch:{
|
|
61
|
+
type:Boolean,
|
|
62
|
+
default:false,
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
data() {
|
|
66
|
+
return {
|
|
67
|
+
childData:this.value,
|
|
68
|
+
// selectList:this.target.selectList,
|
|
69
|
+
selectList:[],
|
|
70
|
+
show:true,
|
|
71
|
+
};
|
|
72
|
+
},
|
|
73
|
+
watch:{
|
|
74
|
+
value(){
|
|
75
|
+
this.childData = this.value
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
components: {
|
|
79
|
+
},
|
|
80
|
+
mounted(){
|
|
81
|
+
this.getSelect(this.target,false);
|
|
82
|
+
},
|
|
83
|
+
methods: {
|
|
84
|
+
//获取下拉的数据
|
|
85
|
+
getSelect(item) {
|
|
86
|
+
api
|
|
87
|
+
.getViewData({
|
|
88
|
+
viewName: this.targetViewName,
|
|
89
|
+
dataId:item.listData.dataId,
|
|
90
|
+
})
|
|
91
|
+
.then((res) => {
|
|
92
|
+
if (res.data.state == 200) {
|
|
93
|
+
let list = res.data.data;
|
|
94
|
+
if (list != null && list.length != 0) {
|
|
95
|
+
let arr = [];
|
|
96
|
+
list.forEach((items) => {
|
|
97
|
+
if(items != null) {
|
|
98
|
+
arr.push({
|
|
99
|
+
label: items[item.listData.titleName],
|
|
100
|
+
value: items[item.listData.keyName],
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
this.selectList = arr;
|
|
105
|
+
}
|
|
106
|
+
} else {
|
|
107
|
+
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
},
|
|
111
|
+
forceUpdate(e) {
|
|
112
|
+
// this.$forceUpdate(); // @change="forceUpdate($event)"主要是解决clear图标响应问题
|
|
113
|
+
this.$emit('update:value',e)
|
|
114
|
+
if(this.isSearch){
|
|
115
|
+
this.$emit('changeSearch')
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
</script>
|
|
121
|
+
<style lang="scss" scoped>
|
|
122
|
+
</style>
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
* @Author: lrm lrm@gonsin.cn
|
|
3
|
+
* @Date: 2022-10-25 15:17:48
|
|
4
|
+
* @LastEditors: lrm lrm@gonsin.cn
|
|
5
|
+
* @LastEditTime: 2022-11-17 14:53:53
|
|
6
|
+
* @FilePath: \client\src\components\MyFormSelectDate.vue
|
|
7
|
+
* @Description:
|
|
8
|
+
*
|
|
9
|
+
* Copyright (c) 2022 by lrm lrm@gonsin.cn, All Rights Reserved.
|
|
10
|
+
-->
|
|
11
|
+
<template>
|
|
12
|
+
<div class="my_select_date">
|
|
13
|
+
<el-date-picker v-model="childData"
|
|
14
|
+
type="date"
|
|
15
|
+
placeholder="选择日期"
|
|
16
|
+
:size="size"
|
|
17
|
+
value-format="timestamp"
|
|
18
|
+
@change="forceUpdate($event)">
|
|
19
|
+
</el-date-picker>
|
|
20
|
+
</div>
|
|
21
|
+
</template>
|
|
22
|
+
|
|
23
|
+
<script>
|
|
24
|
+
export default {
|
|
25
|
+
props: {
|
|
26
|
+
value: {
|
|
27
|
+
type: String | Number
|
|
28
|
+
},
|
|
29
|
+
target: {
|
|
30
|
+
type: Object,
|
|
31
|
+
},
|
|
32
|
+
targetViewName: {
|
|
33
|
+
type: String,
|
|
34
|
+
},
|
|
35
|
+
size: {
|
|
36
|
+
type: String,
|
|
37
|
+
default: "medium",
|
|
38
|
+
},
|
|
39
|
+
isSearch: {
|
|
40
|
+
type: Boolean,
|
|
41
|
+
default: false,
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
data() {
|
|
45
|
+
return {
|
|
46
|
+
childData: this.value,
|
|
47
|
+
};
|
|
48
|
+
},
|
|
49
|
+
watch: {
|
|
50
|
+
value() {
|
|
51
|
+
this.childData = this.value;
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
components: {},
|
|
55
|
+
mounted() {
|
|
56
|
+
if (this.value === 0) {
|
|
57
|
+
this.childData = null
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
methods: {
|
|
61
|
+
forceUpdate(e) {
|
|
62
|
+
// this.$forceUpdate(); // @change="forceUpdate($event)"主要是解决clear图标响应问题
|
|
63
|
+
this.$emit("update:value", e);
|
|
64
|
+
if (this.isSearch) {
|
|
65
|
+
this.$emit("changeSearch");
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
</script>
|
|
71
|
+
<style lang="scss" scoped>
|
|
72
|
+
</style>
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
* @Author: your name
|
|
3
|
+
* @Date: 2022-04-28 09:30:27
|
|
4
|
+
* @LastEditTime: 2022-11-19 15:10:16
|
|
5
|
+
* @LastEditors: lrm lrm@gonsin.cn
|
|
6
|
+
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
7
|
+
* @FilePath: \client\src\components\MyFormSelectDateTime.vue
|
|
8
|
+
-->
|
|
9
|
+
<!--
|
|
10
|
+
* @Author: your name
|
|
11
|
+
* @Date: 2022-04-22 15:51:20
|
|
12
|
+
* @LastEditTime: 2022-04-27 17:47:53
|
|
13
|
+
* @LastEditors: Please set LastEditors
|
|
14
|
+
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
15
|
+
* @FilePath: \gview\src\components\MyDialog.vue
|
|
16
|
+
-->
|
|
17
|
+
|
|
18
|
+
<template>
|
|
19
|
+
<div class="my_select">
|
|
20
|
+
<el-date-picker
|
|
21
|
+
v-model="childData"
|
|
22
|
+
type="datetime"
|
|
23
|
+
value-format="timestamp"
|
|
24
|
+
:size="size"
|
|
25
|
+
placeholder="选择日期时间"
|
|
26
|
+
:default-value="Date.now()"
|
|
27
|
+
@change="forceUpdate($event)"
|
|
28
|
+
>
|
|
29
|
+
</el-date-picker>
|
|
30
|
+
</div>
|
|
31
|
+
</template>
|
|
32
|
+
|
|
33
|
+
<script>
|
|
34
|
+
export default {
|
|
35
|
+
props: {
|
|
36
|
+
value: {
|
|
37
|
+
type: String | Number
|
|
38
|
+
},
|
|
39
|
+
target: {
|
|
40
|
+
type: Object,
|
|
41
|
+
},
|
|
42
|
+
targetViewName: {
|
|
43
|
+
type: String,
|
|
44
|
+
},
|
|
45
|
+
size: {
|
|
46
|
+
type: String,
|
|
47
|
+
default: "medium",
|
|
48
|
+
},
|
|
49
|
+
isSearch: {
|
|
50
|
+
type: Boolean,
|
|
51
|
+
default: false,
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
data() {
|
|
55
|
+
return {
|
|
56
|
+
childData: this.value,
|
|
57
|
+
};
|
|
58
|
+
},
|
|
59
|
+
watch: {
|
|
60
|
+
value() {
|
|
61
|
+
this.childData = this.value;
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
components: {},
|
|
65
|
+
mounted() {
|
|
66
|
+
if (this.value === 0) {
|
|
67
|
+
this.childData = null
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
methods: {
|
|
71
|
+
forceUpdate(e) {
|
|
72
|
+
// this.$forceUpdate(); // @change="forceUpdate($event)"主要是解决clear图标响应问题
|
|
73
|
+
this.$emit("update:value", e);
|
|
74
|
+
if (this.isSearch) {
|
|
75
|
+
this.$emit("changeSearch");
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
</script>
|
|
81
|
+
<style lang="scss" scoped>
|
|
82
|
+
</style>
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
* @Author: your name
|
|
3
|
+
* @Date: 2022-04-28 09:30:27
|
|
4
|
+
* @LastEditTime: 2022-11-17 15:29:08
|
|
5
|
+
* @LastEditors: lrm lrm@gonsin.cn
|
|
6
|
+
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
7
|
+
* @FilePath: \client\src\components\MyFormSelectTime.vue
|
|
8
|
+
-->
|
|
9
|
+
<!--
|
|
10
|
+
* @Author: your name
|
|
11
|
+
* @Date: 2022-04-22 15:51:20
|
|
12
|
+
* @LastEditTime: 2022-04-27 17:47:53
|
|
13
|
+
* @LastEditors: Please set LastEditors
|
|
14
|
+
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
15
|
+
* @FilePath: \gview\src\components\MyDialog.vue
|
|
16
|
+
-->
|
|
17
|
+
|
|
18
|
+
<template>
|
|
19
|
+
<div class="my_select_time">
|
|
20
|
+
<el-time-picker
|
|
21
|
+
v-model="childData"
|
|
22
|
+
:size="size"
|
|
23
|
+
placeholder="请选择时间"
|
|
24
|
+
@change="forceUpdate($event)"
|
|
25
|
+
>
|
|
26
|
+
</el-time-picker>
|
|
27
|
+
</div>
|
|
28
|
+
</template>
|
|
29
|
+
|
|
30
|
+
<script>
|
|
31
|
+
import moment from 'moment';
|
|
32
|
+
export default {
|
|
33
|
+
props: {
|
|
34
|
+
value: {
|
|
35
|
+
type: String | Number,
|
|
36
|
+
},
|
|
37
|
+
target: {
|
|
38
|
+
type: Object,
|
|
39
|
+
},
|
|
40
|
+
targetViewName: {
|
|
41
|
+
type: String,
|
|
42
|
+
},
|
|
43
|
+
size: {
|
|
44
|
+
type: String,
|
|
45
|
+
default: "medium",
|
|
46
|
+
},
|
|
47
|
+
isSearch:{
|
|
48
|
+
type:Boolean,
|
|
49
|
+
default:false,
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
data() {
|
|
53
|
+
return {
|
|
54
|
+
childData: this.value,
|
|
55
|
+
};
|
|
56
|
+
},
|
|
57
|
+
watch: {
|
|
58
|
+
value() {
|
|
59
|
+
this.childData = this.value;
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
components: {},
|
|
63
|
+
mounted() {
|
|
64
|
+
if (this.value === 0) {
|
|
65
|
+
this.childData = null
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
methods: {
|
|
69
|
+
forceUpdate(e) {
|
|
70
|
+
console.log(e);
|
|
71
|
+
let now = moment(e).valueOf();
|
|
72
|
+
let start = moment(e).startOf('day').valueOf();
|
|
73
|
+
let time = parseInt(now) - parseInt(start);
|
|
74
|
+
// console.log(time);
|
|
75
|
+
this.$emit("update:value", time);
|
|
76
|
+
if(this.isSearch){
|
|
77
|
+
this.$emit('changeSearch')
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
</script>
|
|
83
|
+
<style lang="scss" scoped>
|
|
84
|
+
</style>
|