cloud-web-corejs-haier 1.0.42 → 1.0.44

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 (227) hide show
  1. package/package.json +9 -7
  2. package/src/api/user.js +54 -46
  3. package/src/components/baseAlert/index.vue +57 -53
  4. package/src/components/baseInputExport/index.vue +3 -3
  5. package/src/components/baseTabs/mixins.js +12 -1
  6. package/src/components/errorMsg/index.vue +78 -78
  7. package/src/components/excelExport/button.vue +54 -45
  8. package/src/components/excelExport/exportFieldDialog.vue +3 -3
  9. package/src/components/excelExport/index.js +1 -43
  10. package/src/components/excelExport/index.vue +62 -34
  11. package/src/components/excelExport/mixins.js +74 -87
  12. package/src/components/excelImport/index.js +1 -62
  13. package/src/components/excelImport/mixins.js +1 -774
  14. package/src/components/fileLibrary/index.vue +113 -33
  15. package/src/components/fileLibrary/propertiesDialog.vue +6 -0
  16. package/src/components/hiprint/view/design/index.vue +139 -47
  17. package/src/components/hiprint/view/design/preview.vue +75 -52
  18. package/src/components/hiprint/view/json-view.vue +31 -31
  19. package/src/components/luckysheet/dialog.vue +159 -0
  20. package/src/components/luckysheet/export.js +595 -0
  21. package/src/components/luckysheet/fileUtils.js +147 -0
  22. package/src/components/luckysheet/index.js +69 -0
  23. package/src/components/luckysheet/templateJson.js +12078 -0
  24. package/src/components/luckysheet/view.vue +210 -0
  25. package/src/components/onlineTalk/index.vue +328 -6
  26. package/src/components/onlineTalk/talkUserDialog.vue +280 -0
  27. package/src/components/wf/addTaskUserdialog.vue +5 -5
  28. package/src/components/wf/content.vue +1244 -1169
  29. package/src/components/wf/mixins/setCandidateDialog.js +228 -2
  30. package/src/components/wf/mixins/setCandidateDialog2.js +115 -100
  31. package/src/components/wf/mixins/wfTaskUserRangeDialog.js +67 -1
  32. package/src/components/wf/setCandidateDialog.vue +5 -7
  33. package/src/components/wf/setCandidateDialog2.vue +14 -10
  34. package/src/components/wf/wf.js +527 -411
  35. package/src/components/wf/wfTaskUserRangeDialog.vue +1 -1
  36. package/src/components/wf/wfUtil.js +129 -91
  37. package/src/components/xform/form-designer/designer.js +1994 -9
  38. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +10 -0
  39. package/src/components/xform/form-designer/form-widget/container-widget/detail-pane-widget.vue +3 -2
  40. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +5 -1
  41. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin - /345/211/257/346/234/254.js" +1639 -0
  42. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +1756 -2
  43. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +1 -0
  44. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-item-widget.vue +10 -1
  45. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-widget.vue +170 -0
  46. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +1630 -1
  47. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +153 -40
  48. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +65 -46
  49. package/src/components/xform/form-designer/form-widget/field-widget/vue-page-widget.vue +231 -0
  50. package/src/components/xform/form-designer/setting-panel/form-setting.vue +7 -4
  51. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/edit-tree-button-group-config-dialog.vue +281 -0
  52. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +659 -221
  53. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-editor.vue +3 -3
  54. package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +133 -0
  55. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onClick-editor.vue +14 -6
  56. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +1 -1
  57. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +1 -1
  58. package/src/components/xform/form-designer/setting-panel/property-editor/field-vue-page/vue-page-editor.vue +48 -0
  59. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconClass-editor.vue +18 -17
  60. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconPosition-editor.vue +26 -26
  61. package/src/components/xform/form-designer/setting-panel/property-editor/labelTooltip-editor.vue +67 -13
  62. package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +2 -0
  63. package/src/components/xform/form-designer/setting-panel/property-editor/showViewButton-editor.vue +29 -0
  64. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +8 -6
  65. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +1 -0
  66. package/src/components/xform/form-render/container-item/data-table-mixin.js +20 -17
  67. package/src/components/xform/form-render/container-item/detail-item.vue +72 -48
  68. package/src/components/xform/form-render/container-item/sub-form-item.vue +10 -2
  69. package/src/components/xform/form-render/container-item/table2-item.vue +40 -10
  70. package/src/components/xform/form-render/indexMixin.js +3705 -1
  71. package/src/components/xform/icon-picker/icons.json +284 -0
  72. package/src/components/xform/icon-picker/index.vue +145 -0
  73. package/src/components/xform/lang/zh-CN.js +2 -1
  74. package/src/components/xform/mixins/defaultHandle.js +366 -2
  75. package/src/components/xform/utils/formula-util.js +3 -0
  76. package/src/components/xform/utils/sfc-generator.js +2 -2
  77. package/src/components/xform/utils/smart-vue-i18n/index.js +2 -1
  78. package/src/components/xform/utils/tableColumnHelper.js +54 -10
  79. package/src/components/xform/utils/util.js +1547 -1
  80. package/src/index.js +190 -211
  81. package/src/lang/locale/en/login.js +26 -19
  82. package/src/lang/locale/zh/login.js +25 -19
  83. package/src/layout/components/Sidebar/default.vue +252 -71
  84. package/src/layout/components/Sidebar/index.vue +6 -1
  85. package/src/layout/components/TagsView/index.vue +6 -0
  86. package/src/layout/components/langTool.vue +32 -29
  87. package/src/layout/defaultLayout.vue +16 -8
  88. package/src/layout/index.vue +5 -3
  89. package/src/permission.js +135 -1
  90. package/src/router/index.js +1 -4
  91. package/src/store/config/index.js +667 -1
  92. package/src/store/getters.js +2 -1
  93. package/src/store/modules/permission.js +332 -1
  94. package/src/store/modules/settings.js +26 -1
  95. package/src/store/modules/tagsView.js +190 -1
  96. package/src/store/modules/user.js +358 -1
  97. package/src/utils/aes.js +15 -1
  98. package/src/utils/auth.js +27 -1
  99. package/src/utils/componentDialog.js +217 -0
  100. package/src/utils/request.js +368 -1
  101. package/src/utils/vab.js +1256 -7
  102. package/src/views/bd/setting/bd_company_env/dialog.vue +174 -174
  103. package/src/views/bd/setting/bd_company_env/edit.vue +193 -193
  104. package/src/views/bd/setting/formVersion/button.vue +55 -0
  105. package/src/views/bd/setting/formVersion/compareBasicSection.vue +125 -0
  106. package/src/views/bd/setting/formVersion/compareCodeSection.vue +539 -0
  107. package/src/views/bd/setting/formVersion/compareContMixin.scss +65 -0
  108. package/src/views/bd/setting/formVersion/compareContent.vue +63 -0
  109. package/src/views/bd/setting/formVersion/compareDialog.vue +88 -0
  110. package/src/views/bd/setting/formVersion/compareMixin.js +93 -0
  111. package/src/views/bd/setting/formVersion/fieldCompare.vue +54 -0
  112. package/src/views/bd/setting/formVersion/formScriptCompareView.vue +94 -0
  113. package/src/views/bd/setting/formVersion/formTemplateCompareView.vue +74 -0
  114. package/src/views/bd/setting/formVersion/ftHistoryDialog.vue +491 -0
  115. package/src/views/bd/setting/formVersion/link.vue +58 -0
  116. package/src/views/bd/setting/formVersion/preformDialog.vue +87 -0
  117. package/src/views/bd/setting/formVersion/reverButton.vue +82 -0
  118. package/src/views/bd/setting/formVersion/tableDetailDiff.js +99 -0
  119. package/src/views/bd/setting/formVersion/tableModelCompareView.vue +514 -0
  120. package/src/views/bd/setting/formVersion/textDiff.js +102 -0
  121. package/src/views/bd/setting/form_import_log/edit.vue +6 -3
  122. package/src/views/bd/setting/form_import_log/list.vue +5 -0
  123. package/src/views/bd/setting/form_script/edit.vue +196 -83
  124. package/src/views/bd/setting/form_script/edit1.vue +410 -220
  125. package/src/views/bd/setting/form_script/form_list.vue +19 -0
  126. package/src/views/bd/setting/form_script/list.vue +95 -21
  127. package/src/views/bd/setting/form_script/list1.vue +24 -0
  128. package/src/views/bd/setting/form_script/mixins/dialog.js +2 -2
  129. package/src/views/bd/setting/form_script/mixins/edit.js +265 -207
  130. package/src/views/bd/setting/form_script/mixins/edit1.js +259 -201
  131. package/src/views/bd/setting/form_script/mixins/form_list.js +322 -296
  132. package/src/views/bd/setting/form_script/mixins/list.js +163 -95
  133. package/src/views/bd/setting/form_script/mixins/list1.js +244 -155
  134. package/src/views/bd/setting/form_script/mixins/otherAuthDialog.js +1 -1
  135. package/src/views/bd/setting/form_template/batchWfObjConfigDialog.vue +1 -1
  136. package/src/views/bd/setting/form_template/edit.vue +355 -205
  137. package/src/views/bd/setting/form_template/formDesignerDialog.vue +171 -0
  138. package/src/views/bd/setting/form_template/list.vue +49 -74
  139. package/src/views/bd/setting/form_template/mixins/batchWfObjConfigDialog.js +3 -3
  140. package/src/views/bd/setting/form_template/mixins/edit.js +51 -8
  141. package/src/views/bd/setting/form_template/mixins/itemList.js +1 -1
  142. package/src/views/bd/setting/form_template/mixins/list.js +114 -82
  143. package/src/views/bd/setting/form_template/mixins/list2.js +3 -3
  144. package/src/views/bd/setting/form_template/mixins/otherAuthDialog.js +1 -1
  145. package/src/views/bd/setting/form_template/mixins/wf_list.js +3 -7
  146. package/src/views/bd/setting/form_template/wfObjConfigDialog.vue +254 -254
  147. package/src/views/bd/setting/form_template/wf_list.vue +161 -127
  148. package/src/views/bd/setting/request_async_setting/edit.vue +320 -320
  149. package/src/views/bd/setting/request_setting/edit.vue +300 -300
  150. package/src/views/bd/setting/request_setting/list.vue +15 -25
  151. package/src/views/bd/setting/table_model/edit.vue +702 -498
  152. package/src/views/bd/setting/table_model/list.vue +28 -0
  153. package/src/views/bd/setting/table_model/mixins/dialog.js +1 -1
  154. package/src/views/bd/setting/table_model/mixins/edit copy.js +903 -0
  155. package/src/views/bd/setting/table_model/mixins/edit.js +228 -121
  156. package/src/views/bd/setting/table_model/mixins/list.js +55 -20
  157. package/src/views/bd/setting/table_model/mixins/otherAuthDialog.js +1 -1
  158. package/src/views/bd/setting/table_model/mixins/zdDialog.js +50 -46
  159. package/src/views/bd/setting/utils/index.js +15 -0
  160. package/src/views/user/api_request/list.vue +203 -203
  161. package/src/views/user/bill_setting/list.vue +345 -345
  162. package/src/views/user/code_rules/list.vue +204 -204
  163. package/src/views/user/common_attribute/list.vue +378 -378
  164. package/src/views/user/common_script/list.vue +341 -341
  165. package/src/views/user/company_info/dialog.vue +80 -49
  166. package/src/views/user/country/list.vue +197 -197
  167. package/src/views/user/extend_datasource/dialog.vue +0 -3
  168. package/src/views/user/extend_datasource/edit.vue +1 -2
  169. package/src/views/user/extend_datasource/list.vue +221 -224
  170. package/src/views/user/fieldTranslation/editDialog.vue +1 -1
  171. package/src/views/user/fieldTranslation/list.vue +473 -473
  172. package/src/views/user/field_values_invisible/list.vue +207 -207
  173. package/src/views/user/file_type/list.vue +271 -271
  174. package/src/views/user/file_view_area/list.vue +331 -331
  175. package/src/views/user/form/vform/designer.vue +303 -287
  176. package/src/views/user/form/vform/formFieldMapping.js +2 -3
  177. package/src/views/user/form/view/edit.vue +19 -1
  178. package/src/views/user/form/view/list.vue +59 -17
  179. package/src/views/user/groups/list.vue +158 -158
  180. package/src/views/user/home/default.vue +274 -182
  181. package/src/views/user/home/default2.vue +1148 -0
  182. package/src/views/user/home/index.vue +2 -1
  183. package/src/views/user/lang_tag/list.vue +170 -170
  184. package/src/views/user/language_setting/list.vue +208 -208
  185. package/src/views/user/ledger_library/list.vue +12 -10
  186. package/src/views/user/login/default.vue +1 -1
  187. package/src/views/user/login/indexMixin.js +204 -169
  188. package/src/views/user/menu/list.vue +575 -575
  189. package/src/views/user/notify_message/dialog.vue +7 -1
  190. package/src/views/user/notify_template/list.vue +192 -192
  191. package/src/views/user/notify_template/list2.vue +190 -190
  192. package/src/views/user/position/list.vue +188 -188
  193. package/src/views/user/project_tag/list.vue +175 -175
  194. package/src/views/user/push_setting/list.vue +236 -236
  195. package/src/views/user/request_setting/list.vue +248 -248
  196. package/src/views/user/role/list.vue +182 -182
  197. package/src/views/user/system_notice/infoDialog.vue +61 -2
  198. package/src/views/user/system_notice/list.vue +203 -203
  199. package/src/views/user/system_parameter/list.vue +141 -141
  200. package/src/views/user/user/edit.vue +45 -0
  201. package/src/views/user/user/form_list.vue +245 -245
  202. package/src/views/user/user/info.vue +253 -140
  203. package/src/views/user/user_log_classify/list.vue +197 -197
  204. package/src/views/user/wf/iframe/index.vue +46 -46
  205. package/src/views/user/wf/wfReport/index.vue +1 -1
  206. package/src/views/user/wf/wf_auto_submit_data/list.vue +659 -659
  207. package/src/views/user/wf/wf_diy_attribute/edit.vue +1 -1
  208. package/src/views/user/wf/wf_manage/list.vue +795 -795
  209. package/src/views/user/wf/wf_manage/wfContentDialog.vue +106 -106
  210. package/src/views/user/wf/wf_obj_config/dialog.vue +2 -2
  211. package/src/views/user/wf/wf_obj_config/edit.vue +1 -1
  212. package/src/views/user/wf/wf_obj_config/edit_form.vue +2 -2
  213. package/src/views/user/wf/wf_obj_config/itemEdit.vue +1 -1
  214. package/src/views/user/wf/wf_obj_config/itemEdit_form.vue +1 -1
  215. package/src/views/user/wf/wf_obj_config/itemOperateDialog.vue +4 -4
  216. package/src/views/user/wf/wf_obj_config/list.vue +28 -28
  217. package/src/views/user/wf/wf_obj_config/list_form.vue +5 -5
  218. package/src/views/user/wf/wf_obj_config/wfBizDataSettingDialog.vue +292 -292
  219. package/src/views/user/wf/wf_param/edit.vue +1 -1
  220. package/src/views/user/wf/wf_transfer_setting/edit.vue +1 -1
  221. package/src/views/user/wf/wf_transfer_setting/list.vue +321 -319
  222. package/src/views/user/wf/wf_work_calendar/components/calendar.vue +369 -367
  223. package/src/views/user/wf/wf_work_calendar/components/calendar2.vue +401 -399
  224. package/src/views/user/wf/wf_work_calendar/configDialog.vue +6 -6
  225. package/src/views/user/wf/wf_work_calendar/date.js +84 -83
  226. package/src/views/user/wf/wf_work_calendar/list.vue +6 -6
  227. package/src/views/user/workbench_menu/list.vue +555 -0
@@ -0,0 +1,210 @@
1
+ <template>
2
+ <div style="height: 100%">
3
+ <div
4
+ :id="containerId"
5
+ :key="containerId"
6
+ style="
7
+ margin: 0px;
8
+ padding: 0px;
9
+ height: 100%;
10
+ width: 100%;
11
+ left: 0px;
12
+ top: 30px;
13
+ bottom: 0px;
14
+ "
15
+ ></div>
16
+ <div
17
+ v-show="isMaskShow"
18
+ style="
19
+ position: absolute;
20
+ z-index: 1000000;
21
+ left: 0px;
22
+ top: 0px;
23
+ bottom: 0px;
24
+ right: 0px;
25
+ background: rgba(255, 255, 255, 0.8);
26
+ text-align: center;
27
+ font-size: 40px;
28
+ align-items: center;
29
+ justify-content: center;
30
+ display: flex;
31
+ "
32
+ >
33
+ Downloading
34
+ </div>
35
+ </div>
36
+ </template>
37
+
38
+ <script>
39
+ import LuckyExcel from "luckyexcel";
40
+ //导入库export.js 这个文件是es6的,不能在普通的HTML文件直接引入js文件(虽然都是js文件,但是有区别,具体请百度es6与es5)!需要把es6转es5才可以直接引入使用!
41
+ import { exportExcel, generateExcelFile } from "./export";
42
+ import { saveAs } from "file-saver";
43
+
44
+ export default {
45
+ name: "luckysheet",
46
+ props: {
47
+ options: {
48
+ type: Object,
49
+ default: () => {},
50
+ },
51
+ data: {
52
+ type: Array,
53
+ default: () => [],
54
+ },
55
+ },
56
+ data() {
57
+ return {
58
+ selected: "",
59
+ isMaskShow: false,
60
+ // 生成随机ID,避免多个组件实例之间的ID冲突
61
+ containerId: "luckysheet-" + Math.random().toString(36).substr(2, 9),
62
+ };
63
+ },
64
+ beforeDestroy() {
65
+ if (luckysheet) {
66
+ this.exitEditMode();
67
+ luckysheet.destroy();
68
+ }
69
+ },
70
+ mounted() {
71
+ // In some cases, you need to use $nextTick
72
+ // this.$nextTick(() => {
73
+ let config = this.options.config || {};
74
+ let data = this.data.length > 0 ? this.data : null;
75
+ if (!data) {
76
+ data = [
77
+ {
78
+ name: "Sheet1",
79
+ color: "",
80
+ status: "1",
81
+ order: "0",
82
+ data: [],
83
+ config: {},
84
+ index: 0,
85
+ },
86
+ ];
87
+ }
88
+ luckysheet.create({
89
+ container: this.containerId,
90
+ lang: "zh",
91
+ showinfobar: false,
92
+ data: data,
93
+ ...config,
94
+ });
95
+
96
+ // });
97
+ },
98
+ methods: {
99
+ generateExcelFile(callback) {
100
+ // 检查luckysheet是否存在
101
+ if (!luckysheet) {
102
+ console.error("luckysheet未初始化");
103
+ return;
104
+ }
105
+
106
+ try {
107
+ // 获取luckysheet数据
108
+ if (luckysheet.getLuckysheetfile) {
109
+ const excelData = luckysheet.getLuckysheetfile();
110
+ console.log("获取Excel数据成功", excelData);
111
+
112
+ // 生成Excel文件对象
113
+ generateExcelFile(excelData, "测试文件")
114
+ .then((file) => {
115
+ callback && callback(file);
116
+ // console.log("生成Excel文件对象成功", file);
117
+ // console.log("文件名:", file.name);
118
+ // console.log("文件大小:", file.size);
119
+ // console.log("文件类型:", file.type);
120
+
121
+ // 这里可以使用file对象进行上传等操作
122
+ // 例如:uploadFile(file);
123
+ // const fileName = `电子表格_${new Date().getTime()}.xlsx`;
124
+ // saveAs(file, fileName);
125
+ })
126
+ .catch((error) => {
127
+ console.error("生成Excel文件对象失败:", error);
128
+ });
129
+ } else {
130
+ console.error("luckysheet不支持getLuckysheetfile方法");
131
+ }
132
+ } catch (error) {
133
+ console.error("生成Excel文件对象失败:", error);
134
+ }
135
+ },
136
+ uploadExcel(evt) {
137
+ const files = evt.target.files;
138
+ if (files == null || files.length == 0) {
139
+ alert("No files wait for import");
140
+ return;
141
+ }
142
+
143
+ let name = files[0].name;
144
+ let suffixArr = name.split("."),
145
+ suffix = suffixArr[suffixArr.length - 1];
146
+ if (suffix != "xlsx") {
147
+ alert("Currently only supports the import of xlsx files");
148
+ return;
149
+ }
150
+ const self = this;
151
+ LuckyExcel.transformExcelToLucky(files[0], function (exportJson, luckysheetfile) {
152
+ if (exportJson.sheets == null || exportJson.sheets.length == 0) {
153
+ alert(
154
+ "Failed to read the content of the excel file, currently does not support xls files!"
155
+ );
156
+ return;
157
+ }
158
+ luckysheet.destroy();
159
+
160
+ luckysheet.create({
161
+ container: self.containerId, //使用当前组件的容器ID
162
+ showinfobar: false,
163
+ data: exportJson.sheets,
164
+ title: exportJson.info.name,
165
+ userInfo: exportJson.info.name.creator,
166
+ });
167
+ });
168
+ },
169
+ exitEditMode() {
170
+ luckysheet.exitEditMode();
171
+ },
172
+ getValue() {
173
+ luckysheet.exitEditMode();
174
+ let sheetData = luckysheet.getluckysheetfile();
175
+ return sheetData;
176
+ },
177
+ downloadExcel() {
178
+ exportExcel(luckysheet.getAllSheets(), "下载");
179
+ },
180
+ getJson() {
181
+ luckysheet.exitEditMode();
182
+ let json = luckysheet.toJson();
183
+ return json;
184
+ },
185
+ },
186
+ };
187
+ </script>
188
+
189
+ <!-- Add "scoped" attribute to limit CSS to this component only -->
190
+ <style scoped>
191
+ h3 {
192
+ margin: 40px 0 0;
193
+ }
194
+ ul {
195
+ list-style-type: none;
196
+ padding: 0;
197
+ }
198
+ li {
199
+ display: inline-block;
200
+ margin: 0 10px;
201
+ }
202
+ a {
203
+ color: #42b983;
204
+ }
205
+ </style>
206
+ <style>
207
+ #luckysheet-icon-morebtn-div {
208
+ z-index: 10030 !important;
209
+ }
210
+ </style>
@@ -42,10 +42,21 @@
42
42
  <template v-if="item.contentType == 0">
43
43
  {{ item.content }}
44
44
  </template>
45
- <template v-else>
45
+ <template v-else-if="item.contentType == 1">
46
46
  <baseUpload accept="file" multi="false" :file.sync="item.file" :edit="false"
47
47
  :showProperties="false" :showSize="true" :createBy="false"></baseUpload>
48
48
  </template>
49
+ <template v-else-if="item.contentType == 2">
50
+ <ul class="onlieTalk-search-list">
51
+ <div class="tit"><i class="el-icon-chat-round"></i><b>猜你想问</b></div>
52
+ <div class="o-cont">
53
+ <li v-for="(answer,index) in item.answers" :key="index">
54
+ <a href="javascript:void(0);" class="a-link"
55
+ @click="answerCheckHandle(answer)">{{index+1}}、{{ answer.question }}</a>
56
+ </li>
57
+ </div>
58
+ </ul>
59
+ </template>
49
60
  </div>
50
61
  </div>
51
62
  </template>
@@ -60,6 +71,16 @@
60
71
  <i class="el-icon-folder-opened btn" @click="addFile" :disabled="!talkUserId"></i>
61
72
  </el-tooltip>
62
73
  </div> -->
74
+ <!-- <div class="pop-inputTips" v-show="false">
75
+ <p>该商品的<span>有效</span>日期?</p>
76
+ <p><span>有效</span>使用时间是什么时候?</p>
77
+ <p>该商品的<span>有效</span>日期?</p>
78
+ <p><span>有效</span>使用时间是什么时候?</p>
79
+ <p>该商品的<span>有效</span>日期?</p>
80
+ <p><span>有效</span>使用时间是什么时候?</p>
81
+ <p>该商品的<span>有效</span>日期?</p>
82
+ <p><span>有效</span>使用时间是什么时候?</p>
83
+ </div>-->
63
84
  <el-input type="textarea" :rows="6" class="txt-textarea" v-model="talkUser.content" placeholder="请输入
64
85
  选择此处,可粘贴文件(Ctrl+V)"
65
86
  :disabled="!talkUserId" ref="contentRef" @paste.native="pasteMessage"
@@ -117,6 +138,9 @@
117
138
  <i class="iconfont icon-wendangshangchuan"></i>
118
139
  从个人文档工作区选择
119
140
  </el-button>
141
+ <el-button type="info" plain class="button-sty" @click="openHistoryDialog"><i
142
+ class="el-icon-time"></i>历史记录
143
+ </el-button>
120
144
  </div>
121
145
  <div class="fr">
122
146
  <span class="t">Ctrl + Enter </span>
@@ -191,23 +215,282 @@
191
215
  </el-button>
192
216
  </span>
193
217
  </el-dialog>
218
+
219
+ <el-dialog
220
+ title="历史记录"
221
+ :append-to-body="true"
222
+ :modal-append-to-body="true"
223
+ :close-on-click-modal="false"
224
+ v-if="showHistoryDialog"
225
+ :visible.sync="showHistoryDialog"
226
+ :modal="false"
227
+ custom-class="dialog-style list-dialog history-dialog"
228
+ width="586px"
229
+ v-el-drag-dialog
230
+ v-el-dialog-center
231
+ >
232
+ <div class="history-box">
233
+ <div class="h-form">
234
+ <div class="search-box">
235
+ <div class="search-classify" v-if="historyType == 2" @click="checkHistoryType(null)"><i
236
+ class="el-icon-files"></i><span>文件</span><i
237
+ class='el-icon-close'></i></div>
238
+ <div class="search-classify" v-if="historyType == 1" @click="checkHistoryType(null)"><i
239
+ class="el-icon-files"></i><span>图片</span><i
240
+ class='el-icon-close'></i></div>
241
+ <el-input class="search-input" v-model="historyKeyword" clearable @input="changeHistoryKeyword"></el-input>
242
+ </div>
243
+ <div class="keys-box">
244
+ <span @click="checkHistoryType(2)">文件</span>
245
+ <span @click="checkHistoryType(1)">图片</span>
246
+ </div>
247
+ </div>
248
+ <div class="h-list" @scroll="handleScrollH" >
249
+ <div class="item" v-for="(item,index) in talkHRecords" :key="index" :class="'talk_h'+item.id">
250
+ <div class="name">{{ item.sendUserName }}</div>
251
+ <div class="time">{{ item.createDate }}</div>
252
+ <div>
253
+ <template v-if="item.contentType == 0">
254
+ {{ item.content }}
255
+ </template>
256
+ <template v-else-if="item.contentType == 1">
257
+ <baseUpload accept="file" multi="false" :file.sync="item.file" :edit="false"
258
+ :showProperties="false" :showSize="true" :createBy="false"></baseUpload>
259
+ </template>
260
+ <template v-else-if="item.contentType == 2">
261
+ <ul class="onlieTalk-search-list">
262
+ <div class="tit"><i class="el-icon-chat-round"></i><b>猜你想问</b></div>
263
+ <div class="o-cont">
264
+ <li v-for="(answer,index) in item.answers" :key="index">
265
+ <a href="javascript:void(0);" class="a-link">{{index+1}}、{{ answer.question }}</a>
266
+ </li>
267
+ </div>
268
+ </ul>
269
+ </template>
270
+ </div>
271
+ </div>
272
+ </div>
273
+ </div>
274
+ </el-dialog>
194
275
  </div>
195
276
  </template>
196
277
 
197
278
  <script>
198
279
  import {mixins} from "./mixins";
199
- import userDialog from '../../views/user/user/dialog.vue';
280
+ import userDialog from './talkUserDialog.vue';
200
281
 
201
282
  export default {
202
283
  mixins: [mixins],
203
284
  components: {
204
285
  userDialog,
205
286
  privateProfileDialog: () => import('../../components/VabUpload/privateProfileDialog')
206
- }
287
+ },
288
+ data() {
289
+ return {};
290
+ },
291
+ mounted() {
292
+ },
207
293
  };
208
294
  </script>
209
295
  <style scoped lang="scss">
210
296
  @import '~@/styles/variables.scss';
297
+ .onlieTalk-search-list{
298
+ list-style: none;margin: -8px -4px 0;padding: 0;min-width: 360px;max-width: 90%;
299
+ .tit{color: #333;font-size: 14px;margin: 10px 0 3px;padding-left: 6px;
300
+ i{margin-right: 3px;}
301
+ }
302
+ .o-cont{background: #FFF;border-radius: 5px;margin-top: 7px;padding: 0 12px;}
303
+ li{
304
+ padding: 10px 2px;border-bottom: dashed 1px #dfdfdf;display: block;position: relative;font-size: 12px;cursor: pointer;
305
+ &:after{content:"\e6e0";font-family: element-icons!important;color:#747474;height:30px;border-radius: 50%;position: absolute;top:50%;margin-top:-15px;right:0;line-height:30px;}
306
+ &:last-child{
307
+ border-bottom: none;
308
+ }
309
+ }
310
+ }
311
+ .history-box {
312
+ .h-form {
313
+ padding: 2px 16px 10px;
314
+
315
+ .search-classify {
316
+ background: #F4F4F4;
317
+ line-height: 28px;
318
+ height: 28px;
319
+ padding: 0 8px;
320
+ border-radius: 3px;
321
+
322
+ > i, > span {
323
+ vertical-align: middle;
324
+ font-size: 13px;
325
+ margin-top: 2px;
326
+ }
327
+
328
+ > span {
329
+ margin: 0 2px 0 4px
330
+ }
331
+
332
+ .el-icon-close {
333
+ cursor: pointer;
334
+ }
335
+ }
336
+
337
+ ::v-deep .search-box {
338
+ border: solid 1px #eee;
339
+ padding: 5px;
340
+ border-radius: 8px;
341
+ display: flex;
342
+ background: #FFF;
343
+
344
+ .el-input {
345
+ flex: 1;
346
+
347
+ .el-input__inner {
348
+ border: none;
349
+ }
350
+ }
351
+ }
352
+
353
+ .keys-box {
354
+ margin-top: 10px;
355
+ padding: 0 2px;
356
+
357
+ span {
358
+ display: inline-block;
359
+ margin-right: 42px;
360
+ font-size: 13px;
361
+ color: #2A6494;
362
+ cursor: pointer;
363
+ border-bottom: solid 1px #F7F7F7;
364
+
365
+ &:hover {
366
+ border-bottom: solid 1px #2A6494
367
+ }
368
+ }
369
+ }
370
+ }
371
+
372
+ .h-list {
373
+ height: 520px;
374
+ overflow: auto;
375
+ padding: 2px 0;
376
+ background-color: #FFF;
377
+
378
+ .item {
379
+ border-bottom: solid 1px #f2f2f2;
380
+ position: relative;
381
+ padding: 12px 16px;
382
+ color: #323232;
383
+ font-size: 13px;
384
+ overflow: hidden;
385
+ .onlieTalk-search-list{
386
+ border: solid 1px #eee;padding:0 8px 6px;border-radius: 6px;margin: 10px 0 4px;background: #f7f7f7;overflow: hidden;
387
+ }
388
+ .name {
389
+ color: #999;
390
+ margin-bottom: 5px;
391
+ font-size: 12px;
392
+ }
393
+
394
+ .time {
395
+ position: absolute;
396
+ right: 16px;
397
+ top: 14px;
398
+ font-size: 12px;
399
+ color: #999;
400
+ }
401
+ ::v-deep .upload-box{margin:-10px 0 0 0 !important;border-top:none}
402
+ &:hover {
403
+ background: #f7f7f7;
404
+ }
405
+
406
+ }
407
+ }
408
+
409
+ .h-pic {
410
+ height: 520px;
411
+ overflow: auto;
412
+ padding: 8px 14px;
413
+ background-color: #FFF;
414
+
415
+ .item {
416
+ width: 133px;
417
+ height: 133px;
418
+ display: inline-block;
419
+ vertical-align: middle;
420
+ margin: 3px;
421
+
422
+ .el-image {
423
+ width: 100%;
424
+ height: 100%;
425
+ }
426
+
427
+ &:hover .el-image {
428
+ border: solid 1px #2A6494
429
+ }
430
+ }
431
+ }
432
+
433
+ .h-file {
434
+ height: 520px;
435
+ overflow: auto;
436
+ padding: 8px 0;
437
+ background-color: #FFF;
438
+
439
+ .item {
440
+ position: relative;
441
+ padding: 8px 16px 0;
442
+ color: #323232;
443
+ font-size: 13px;
444
+ display: flex;
445
+
446
+ .img {
447
+ width: 58px;
448
+ height: 58px;
449
+
450
+ .el-image {
451
+ width: 100%;
452
+ height: 100%;
453
+ }
454
+ }
455
+
456
+ .txt {
457
+ border-bottom: solid 1px #f2f2f2;
458
+ flex: 1;
459
+ display: flex;
460
+ color: #999;
461
+ font-size: 12px;
462
+ padding: 0 0 6px;
463
+ margin-left: 12px;
464
+
465
+ p {
466
+ margin: 0 0 8px;
467
+ }
468
+
469
+ .name {
470
+ color: #323232;
471
+ font-size: 13px;
472
+ }
473
+
474
+ .t-l {
475
+ flex: 1
476
+ }
477
+
478
+ .t-r {
479
+ font-size: 12px;
480
+ text-align: right;
481
+
482
+ .ico {
483
+ display: inline-block;
484
+ color: #2A6494;
485
+ margin-left: 8px;
486
+ font-size: 16px;
487
+ }
488
+ }
489
+ }
490
+ }
491
+ }
492
+ }
493
+
211
494
 
212
495
  .ico-online {
213
496
  background: url(~@/resources/images/ico-service.png) no-repeat center 19px #FFF;
@@ -333,7 +616,8 @@ export default {
333
616
 
334
617
  .item {
335
618
  margin: 10px 0;
336
- font-size:14px;
619
+ font-size: 14px;
620
+
337
621
  .name {
338
622
  color: rgba(102, 102, 102, 0.6);
339
623
  margin-bottom: 4px;
@@ -378,7 +662,8 @@ export default {
378
662
 
379
663
  &.right {
380
664
  text-align: right;
381
- font-size:14px;
665
+ font-size: 14px;
666
+
382
667
  .cont {
383
668
  background-color: #D8E8F9;
384
669
 
@@ -414,6 +699,36 @@ export default {
414
699
  display: flex;
415
700
  flex-direction: column;
416
701
 
702
+ .pop-inputTips {
703
+ position: absolute;
704
+ background: #FFF;
705
+ left: 10px;
706
+ border: solid 1px #eee;
707
+ overflow: auto;
708
+ height: 160px;
709
+ width: 400px;
710
+ font-size: 13px;
711
+ bottom: 100%;
712
+ margin-bottom: -22px;
713
+ z-index: 22;
714
+ box-shadow: 0 0 14px rgb(0 0 0 / 11%);
715
+ padding: 2px 0;
716
+
717
+ p {
718
+ padding: 10px 16px;
719
+ margin: 0;
720
+ cursor: pointer;
721
+
722
+ &:hover {
723
+ background: #f7f7f7
724
+ }
725
+
726
+ span {
727
+ color: $red
728
+ }
729
+ }
730
+ }
731
+
417
732
  .btns {
418
733
  background-color: #FAFAFA;
419
734
  height: 36px;
@@ -429,7 +744,7 @@ export default {
429
744
 
430
745
  .txt-textarea {
431
746
  flex: 1;
432
- padding-top: 6px;
747
+ padding-top: 20px;
433
748
 
434
749
  .el-textarea__inner {
435
750
  border: none;
@@ -584,6 +899,13 @@ export default {
584
899
  }
585
900
  }
586
901
 
902
+ .fl {
903
+ .button-sty .el-icon-time {
904
+ margin-bottom: 2px;
905
+ margin-right: 2px;
906
+ }
907
+ }
908
+
587
909
  .fr {
588
910
  .t {
589
911
  vertical-align: middle;