cnhis-design-vue 3.2.6-beta.11 → 3.2.6-beta.13
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/README.md +87 -87
- package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
- package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +1 -0
- package/es/components/bpmn-workflow/types/ModelingModule.d.ts +1 -0
- package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +1 -0
- package/es/components/button-print/src/utils/print.js +1 -1
- package/es/components/field-set/src/FieldColor.vue.d.ts +1 -1
- package/es/components/field-set/src/FieldFilter.vue.d.ts +1 -1
- package/es/components/field-set/src/FieldSet.vue.d.ts +1 -1
- package/es/components/field-set/src/components/Row.vue.d.ts +1 -1
- package/es/components/form-config/src/FormConfig.vue2.js +1 -1
- package/es/components/form-config/src/utils/index.d.ts +1 -0
- package/es/components/form-config/src/utils/index.js +1 -1
- package/es/components/iho-table/src/plugins/keyboardEventPlugin.js +1 -1
- package/es/components/select-label/src/LabelFormContent.vue2.js +1 -1
- package/es/shared/assets/img/defaultCover/10review_successful.png.js +1 -1
- package/es/shared/assets/img/defaultCover/11review_fail.png.js +1 -1
- package/es/shared/assets/img/defaultCover/12no_setting.png.js +1 -1
- package/es/shared/assets/img/defaultCover/13no_menu_setting.png.js +1 -1
- package/es/shared/assets/img/defaultCover/14no_call_setting.png.js +1 -1
- package/es/shared/assets/img/defaultCover/15no_use_tag.png.js +1 -1
- package/es/shared/assets/img/defaultCover/16no_table_data.png.js +1 -1
- package/es/shared/assets/img/defaultCover/1location.png.js +1 -1
- package/es/shared/assets/img/defaultCover/2notfound.png.js +1 -1
- package/es/shared/assets/img/defaultCover/3loading.png.js +1 -1
- package/es/shared/assets/img/defaultCover/4no_permission.png.js +1 -1
- package/es/shared/assets/img/defaultCover/5no_data.png.js +1 -1
- package/es/shared/assets/img/defaultCover/6no_network.png.js +1 -1
- package/es/shared/assets/img/defaultCover/7no_doctor.png.js +1 -1
- package/es/shared/assets/img/defaultCover/8system_error.png.js +1 -1
- package/es/shared/assets/img/defaultCover/9system_upgrade.png.js +1 -1
- package/es/shared/assets/img/failure.png.js +1 -1
- package/es/shared/assets/img/no-permission.png.js +1 -1
- package/es/shared/assets/img/nodata.png.js +1 -1
- package/es/shared/assets/img/notfound.png.js +1 -1
- package/es/shared/assets/img/qr.png.js +1 -1
- package/es/shared/assets/img/success.png.js +1 -1
- package/es/shared/assets/img/table_style_2.png.js +1 -1
- package/es/shared/assets/img/video.png.js +1 -1
- package/es/shared/assets/img/video_default_cover.png.js +1 -1
- package/es/shared/assets/img/xb_big.png.js +1 -1
- package/es/shared/assets/img/xb_small.png.js +1 -1
- package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
- package/es/shared/package.json.js +1 -1
- package/es/shared/utils/fabricjs/index.d.ts +6823 -0
- package/es/shared/utils/tapable/index.d.ts +139 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
# 安装
|
|
2
|
-
|
|
3
|
-
```shell
|
|
4
|
-
npm i cnhis-design-vue@[版本号]
|
|
5
|
-
# or
|
|
6
|
-
yarn add cnhis-design-vue@[版本号] #推荐
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
## 1.全局引入
|
|
10
|
-
|
|
11
|
-
```typescript
|
|
12
|
-
// main.ts
|
|
13
|
-
import { createApp } from 'vue';
|
|
14
|
-
import App from './App.vue';
|
|
15
|
-
import 'cnhis-design-vue/es/packages/index.css';
|
|
16
|
-
import cui from 'cnhis-design-vue';
|
|
17
|
-
|
|
18
|
-
const app = createApp(App);
|
|
19
|
-
app.use(cui).mount('#app');
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## 2. 按需引入
|
|
23
|
-
|
|
24
|
-
组件现在支持了自动按需引入, 但是样式文件需要额外的处理
|
|
25
|
-
|
|
26
|
-
### 2.1 样式处理方式1 (按需引入样式)
|
|
27
|
-
|
|
28
|
-
```shell
|
|
29
|
-
# 安装自动导入样式的插件
|
|
30
|
-
npm i -d vite-plugin-style-import
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
```typescript
|
|
34
|
-
// vite.config.ts
|
|
35
|
-
import { defineConfig } from 'vite';
|
|
36
|
-
import { createStyleImportPlugin } from 'vite-plugin-style-import';
|
|
37
|
-
|
|
38
|
-
export default defineConfig({
|
|
39
|
-
plugins: [
|
|
40
|
-
// ...otherPlugins
|
|
41
|
-
createStyleImportPlugin({
|
|
42
|
-
libs: [
|
|
43
|
-
{
|
|
44
|
-
libraryName: 'cnhis-design-vue',
|
|
45
|
-
esModule: true,
|
|
46
|
-
ensureStyleFile: true,
|
|
47
|
-
resolveStyle: name => {
|
|
48
|
-
return `cnhis-design-vue/es/components/${ name.slice(2) }/style/index.css`;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
]
|
|
52
|
-
})
|
|
53
|
-
]
|
|
54
|
-
});
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### 2.2 样式处理方式2 (全局引入样式)
|
|
58
|
-
|
|
59
|
-
```typescript
|
|
60
|
-
// main.ts
|
|
61
|
-
import 'cnhis-design-vue/es/components/index.css';
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
## 3.FAQ
|
|
65
|
-
|
|
66
|
-
### 3.1 项目打包后样式丢失
|
|
67
|
-
|
|
68
|
-
处理方法, 将 cnhis-design-vue 从 vendor 包中移除 (没有出现此问题则不需要)
|
|
69
|
-
|
|
70
|
-
```typescript
|
|
71
|
-
// vite.config.ts
|
|
72
|
-
import { defineConfig } from 'vite';
|
|
73
|
-
|
|
74
|
-
export default defineConfig({
|
|
75
|
-
build: {
|
|
76
|
-
rollupOptions: {
|
|
77
|
-
// ..otherOptions
|
|
78
|
-
output: {
|
|
79
|
-
dir: './dist',
|
|
80
|
-
manualChunks: {
|
|
81
|
-
'cnhis-vendor': ['cnhis-design-vue']
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
```
|
|
1
|
+
# 安装
|
|
2
|
+
|
|
3
|
+
```shell
|
|
4
|
+
npm i cnhis-design-vue@[版本号]
|
|
5
|
+
# or
|
|
6
|
+
yarn add cnhis-design-vue@[版本号] #推荐
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## 1.全局引入
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
// main.ts
|
|
13
|
+
import { createApp } from 'vue';
|
|
14
|
+
import App from './App.vue';
|
|
15
|
+
import 'cnhis-design-vue/es/packages/index.css';
|
|
16
|
+
import cui from 'cnhis-design-vue';
|
|
17
|
+
|
|
18
|
+
const app = createApp(App);
|
|
19
|
+
app.use(cui).mount('#app');
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 2. 按需引入
|
|
23
|
+
|
|
24
|
+
组件现在支持了自动按需引入, 但是样式文件需要额外的处理
|
|
25
|
+
|
|
26
|
+
### 2.1 样式处理方式1 (按需引入样式)
|
|
27
|
+
|
|
28
|
+
```shell
|
|
29
|
+
# 安装自动导入样式的插件
|
|
30
|
+
npm i -d vite-plugin-style-import
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
// vite.config.ts
|
|
35
|
+
import { defineConfig } from 'vite';
|
|
36
|
+
import { createStyleImportPlugin } from 'vite-plugin-style-import';
|
|
37
|
+
|
|
38
|
+
export default defineConfig({
|
|
39
|
+
plugins: [
|
|
40
|
+
// ...otherPlugins
|
|
41
|
+
createStyleImportPlugin({
|
|
42
|
+
libs: [
|
|
43
|
+
{
|
|
44
|
+
libraryName: 'cnhis-design-vue',
|
|
45
|
+
esModule: true,
|
|
46
|
+
ensureStyleFile: true,
|
|
47
|
+
resolveStyle: name => {
|
|
48
|
+
return `cnhis-design-vue/es/components/${ name.slice(2) }/style/index.css`;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
})
|
|
53
|
+
]
|
|
54
|
+
});
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 2.2 样式处理方式2 (全局引入样式)
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
// main.ts
|
|
61
|
+
import 'cnhis-design-vue/es/components/index.css';
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## 3.FAQ
|
|
65
|
+
|
|
66
|
+
### 3.1 项目打包后样式丢失
|
|
67
|
+
|
|
68
|
+
处理方法, 将 cnhis-design-vue 从 vendor 包中移除 (没有出现此问题则不需要)
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
// vite.config.ts
|
|
72
|
+
import { defineConfig } from 'vite';
|
|
73
|
+
|
|
74
|
+
export default defineConfig({
|
|
75
|
+
build: {
|
|
76
|
+
rollupOptions: {
|
|
77
|
+
// ..otherOptions
|
|
78
|
+
output: {
|
|
79
|
+
dir: './dist',
|
|
80
|
+
manualChunks: {
|
|
81
|
+
'cnhis-vendor': ['cnhis-design-vue']
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
```
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare module 'bpmn-js/lib/Viewer';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare module 'bpmn-js/lib/features/modeling';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare module 'diagram-js/lib/navigation/movecanvas';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import t from"axios";import{isArray as e}from"lodash-es";import{IdentityVerificationDialog as i,PreviewDialog as s}from"./dialog.js";import{getFileUrl as r,useBrowserPrint as n,isIReport as a}from"./browserPrint.js";import{getCurrentInstance as o}from"vue";import{uuidGenerator as l}from"../../../../shared/utils/index.js";import{format as c}from"date-fns";import{io as h}from"socket.io-client";const d=String(navigator.platform).toLowerCase().includes("linux"),m=t.create({timeout:6e4,withCredentials:!1}),p=`${window.location.protocol}//${window.location.host}`,u=`${p}/fdp-api/print/assembly/printIReport`,f=`${p}/bi-api/reprot/print/open/client/printIReportForBase64`,g=`${p}/bi-api/reprot/print/open/client/previewIReport`,w=`${p}/bi-api/reprot/print/open/client/getRemote`,y=`${p}/printService/file`;let v=null;class P{constructor(){var t,e,r;if(this.webview=null,this.dialog=new i,this.dialogPreview=new s,this.instance=null,this.downloadPath="",this.printOrigin="http://127.0.0.1:11111",this.isRemote=!1,this.CMonitor=null,this.queryServicesParams=null,this.isConnectHiPrint=!1,this.clientInfo=null,this.printerList=[],this.hiPrintSocket=null,this.base64Fragment="",this._successCallbackFn=null,this._errorCallbackFn=null,this._isHiprint=!1,this.messageHandlerQueue=[],this.getIReportFormatId=(t,e)=>t?e.split("_")[1]:e,v)return v;v=this,d&&this._isHiprint&&this._initDomesticSystem();const n=window;this.CMonitor=n.$CMonitor;try{this.webview=n.top?null==(t=n.top.chrome)?void 0:t.webview:null==(e=n.chrome)?void 0:e.webview}catch(t){console.log(t),this.webview=null==(r=n.chrome)?void 0:r.webview}if(this.webview){this.currentMessageHandler=this.messageHandler.bind(this),this.webview.addEventListener("message",this.currentMessageHandler);try{this.webview.postMessage({exec:"config",data:""})}catch(t){const e="当前浏览器版本不支持获取配置接口";this._handleMonitorNotify(e),console.log("非封装浏览器或者"+e)}}}messageHandler(t){var e;if(console.log("打印事件message",t),!t)return this._handleMonitorNotify("接收到空的浏览器事件,"+t),console.log("当前回执",t,"接收到空的浏览器事件");let i;try{i=JSON.parse(t.data||"{}")}catch(e){console.log("解析e.data失败,"+e),this._handleMonitorNotify("解析e.data失败,"+t)}if(["print","pdf","resetprint"].includes(null==i?void 0:i.cmd)){console.log("打印命令执行了",i);const e=this.messageHandlerQueue.shift();if(!e)return console.log("当前回执",t,"没有可用的handler");const{resolve:s,reject:r}=e;try{if("resetprint"===(null==i?void 0:i.cmd))return void s({result:(null==i?void 0:i.res)?"success":"fail"});s(i.res||"")}catch(t){r(t)}}else if("config"===(null==i?void 0:i.exec))this.downloadPath=(null==(e=i.res)?void 0:e.downloadpath)||"";else{const e=this.messageHandlerQueue.shift();if(!e)return console.log("当前回执11",t,"没有可用的handler11");const{resolve:i,reject:s}=e;s({message:"不支持当前命令"})}}_initDomesticSystem(){try{this.hiPrintSocket=h("http://127.0.0.1:17521",{reconnectionAttempts:3,transports:["websocket"],auth:{token:"no-use-vue-plugin-hiprint"}}),this.hiPrintSocket&&(this.hiPrintSocket.on("connect",(()=>{this.isConnectHiPrint=!0})),this.hiPrintSocket.on("disconnect",(()=>{this.isConnectHiPrint=!1,this.hiPrintSocket=null})),this.hiPrintSocket.on("clientInfo",(t=>{console.log("获取到客户端信息>>>>>",t),t.clientUrl&&(this.clientInfo=t)})),this.hiPrintSocket.on("printerList",(t=>{this.printerList=t,console.log("获取到打印机列表信息>>>>>",t)})),this.hiPrintSocket.on("success",(t=>{console.log("打印成功>>>>>",t),this.base64Fragment="",this._successCallbackFn&&this._successCallbackFn(t)})),this.hiPrintSocket.on("replayPrinterTemplate",(t=>{console.log("获取到数据的回复>>>>>",t),t&&this.hiPrintSocket.emit("news",t)})),this.hiPrintSocket.on("error",(t=>{console.log("打印失败>>>>>",t),this.base64Fragment="",this._errorCallbackFn&&this._errorCallbackFn(t)})))}catch(t){console.log("hiprint系统连接失败",t)}}async getPicAndUpload(t){try{const e=t=>"[object Object]"===Object.prototype.toString.call(t);if("success"===(null==t?void 0:t.result)&&"Y"==(null==t?void 0:t.uploadTemplateFlag)&&!(null==t?void 0:t.filebase64)&&this.queryServicesParams){const t=e(this.queryServicesParams.params)?this.queryServicesParams.params:JSON.parse(this.queryServicesParams.params);t.uploadTemplateFlag="Y",this.queryServicesParams.params=JSON.stringify(t),this.queryServicesParams.cmdid="7",this.queryServicesParams.print={print:1,type:6,zip:0},this.queryServicesParams.paramsArr=[{params:JSON.stringify(t)}];await this._queryBase64ServicesPrint(this.queryServicesParams)}}catch(t){console.log(t)}finally{this.queryServicesParams=null}}async postMessage(t,e=0){if(!this.webview)return Promise.reject();const i=l();return e&&e>0?this.messageCollectAndNotifyFail(i,t,e):this.messageCollect(i,t)}messageCollect(t,e){return new Promise(((i,s)=>{this.messageHandlerQueue.push({resolve:i,reject:s,id:t}),this.webview.postMessage(e)}))}messageCollectAndNotifyFail(t,e,i){return Promise.race([new Promise(((i,s)=>{this.messageHandlerQueue.push({resolve:i,reject:s,id:t}),this.webview.postMessage(e)})),new Promise(((e,s)=>{setTimeout((()=>{const e=this.messageHandlerQueue.findIndex((e=>e.id===t));e>-1&&this.messageHandlerQueue.splice(e,1),s({type:"timeout"})}),i)}))])}destroy(){}show(...t){return this.dialog.show(...t)}showPreview(...t){return this.dialogPreview.show(...t)}_testConnection(){return this.webview?Promise.resolve(!0):new Promise((t=>{m({url:`${this.printOrigin}/test`,method:"get",withCredentials:!1,params:{inputdata:{result:"success"}}}).then((({data:e})=>{"success"===e.result?t(!0):t(!1)})).catch((e=>{t(!1)}))}))}resetPrinter(t){return this.webview?this.postMessage({exec:"resetprint",data:{formatID:t}}):m({url:`${this.printOrigin}/services/printset`,method:"get",withCredentials:!1,params:{inputdata:t}}).then((({data:t})=>t))}_queryServicesPrint(e){return this.webview?this.postMessage({exec:"print",data:{inputData:e}},null==e?void 0:e.messageTimeout):t({url:this.printOrigin+"/services/print",method:"get",params:{inputData:JSON.stringify(e)}}).then((({data:t})=>t))}_queryBase64ServicesPrint(t){return this.webview?this.postMessage({exec:"print",data:{inputData:t}}):m({url:"/services/Printqueue",method:"get",params:{inputData:JSON.stringify(t)}}).then((({data:t})=>t))}_callPrintWithFile(t){const e={cmdid:"7",flag:"1"},i={inputData:JSON.stringify(Object.assign({},e,t))};return this.webview?this.postMessage({exec:"print",data:s(i)}):m({url:this.printOrigin+"/PrintLocal",method:"post",data:i,transformRequest:[s]}).then((({data:t})=>t));function s(t){let e="";for(const i in t)e+=encodeURIComponent(i)+"="+encodeURIComponent(t[i])+"&";return e=e.slice(0,-1),e}}_handleMonitorNotify(t){var e,i;null==(i=null==(e=this.CMonitor)?void 0:e.notify)||i.call(e,{name:"custom_info",message:t,businessName:"打印sdk"})}_handleResult(t,e,i){if(!t){const t="打印命令返回空数据";return this._handleMonitorNotify(""),null==e||e({type:"printError",message:t,result:!1,errinfo:t}),!1}if("success"!==t.result){const s=t.message||t.Message;this._handleMonitorNotify(s);const r={type:"printError",message:s,result:t.result,errinfo:t.errinfo};return"cancel"==t.result?(i&&i({type:"printCancel",message:s,result:t.result,errinfo:t.errinfo}),!1):(null==e||e(r),!1)}return t}_handleResultTest(t,e){return!!t||(console.log("notInstalledApp"),null==e||e({type:"notInstalledApp",message:"请打开打印服务器插件"}),!1)}async _handleEventQueryPrintData(t,e,i,s,r){const n={templateId:t,formatId:e,params:i,cmdid:"7",messageTimeout:s},a=await this._queryServicesPrint(n);return this._handleQueryPrintDataResult(a,e,r)}_handleQueryPrintDataResult(t,e,i){if(!(null==t?void 0:t.file)){try{const e=t.message||t.Message;console.log(e),null==i||i({type:"queryPrintDataFailure",message:e})}catch(t){console.log(t)}return!1}return{file:t.file,printerName:t.defprinter,pageCount:t.pagecount,formatId:e}}async _handleEventDirect({templateId:t,formatId:e,params:i,paramsArr:s,cmdid:r,print:n,signature:a,copies:o=1,printdlgshow:l="0",nobillnode:h="1",btnprint:d="1",messageTimeout:m=0}){const p={templateId:t,formatId:e,params:i,cmdid:r,nobillnode:h,printdlgshow:l,btnprint:d,copies:o,messageTimeout:m,...a?{signature:a}:{}};if(s&&(p.paramsArr=s),n){try{n=JSON.parse(n)}catch(t){}p.print=n}else if(this.isRemote){const t=c(new Date,"yyyyMMddHHmmss");p.print={print:"1",type:"1",zip:"0",filename:`F:\\WorkSpace\\crmweb\\web\\${t}\\${t}`}}return this.queryServicesParams=p,await this._queryServicesPrint(p)}async _handleEventEditFormat({templateId:t,formatId:e="",params:i="",token:s,messageTimeout:r=0}){const n={};let a={};try{a=Object.assign({},n,JSON.parse(i))}catch(t){a=n}const o={templateId:t,formatId:e,cmdid:"9",token:s,params:JSON.stringify(a),messageTimeout:r};return await this._queryServicesPrint(o)}async _queryProxyOrigin(){if(this.isRemote)return;const{data:t}=await m({method:"get",url:w})||{},{map:e={}}=t;e.isRemote&&(this.printOrigin=p+"/printService",this.isRemote=!0)}async _queryPrintFile(t,e=""){const{data:i}=await m({method:"post",url:u,responseType:"blob",params:{formatId:t.split("_")[1],params:e}})||{};return i}paramsSerializer(t){return Object.keys(t).forEach((e=>{const i=t[e];t[e]=i,"biParams"==e&&(t[e]=encodeURIComponent(i))})),t}async _queryPrintForBase64(t,e,i="",s){const r="object"==typeof i?i:JSON.parse(i),{data:n}=await m({method:"post",url:f,params:{id:t,formatId:e,params:this.paramsSerializer(r),authorizationKey:s}})||{};return n}async _queryPrintForPdf(t,e,i="",s){const r="object"==typeof i?i:JSON.parse(i),{data:n}=await m({method:"post",url:g,responseType:"blob",params:{id:t,formatId:e,params:this.paramsSerializer(r),authorizationKey:s}})||{};return n}async _browserPrint(t,e){if(this.isRemote){const{filedir:i}=t,s=JSON.parse(i)[0].replace(/\\/g,"/").split("/"),a=s[s.length-2],o=s[s.length-1],l=await r(`${y}/${a}/${o}`),c=n(null,e,l);if("preview"===e)return c}}_base64ToBlob(t,e){const i=window.atob(t);let s=i.length;const r=new Uint8Array(s);for(;s--;)r[s]=i.charCodeAt(s);return new Blob([r],{type:e})}async preview({templateId:t,formatId:e,params:i="",paramsArr:s,authorizationKey:r,signature:l,btnprint:c,messageTimeout:h=0},m,p){const u=a(e);if(e=this.getIReportFormatId(u,e),u&&d&&this._isHiprint){const s=await this._queryPrintForPdf(t,e,i,r);if(!s)return null==p?void 0:p("获取文件失败!");const a=n(s,"preview");return this.instance||(this.instance=o()),this.showPreview(this.instance,a),null==m?void 0:m({file:s})}await this._queryProxyOrigin();const f=await this._testConnection();if(!this._handleResultTest(f,p))return!1;try{const r=await this._handleEventDirect({templateId:t,formatId:e,params:i,paramsArr:s,cmdid:this.isRemote?"7":"8",signature:l,btnprint:c,messageTimeout:h}),n=this._handleResult(r,p);if(!n)return!1;if(this.isRemote){const t=await this._browserPrint(n,"preview");this.instance||(this.instance=o()),this.showPreview(this.instance,t)}await this.getPicAndUpload(n),null==m||m(n)}catch(t){const e="预览失败",i="timeout"===(null==t?void 0:t.type)?{...t,message:e}:{message:e};null==p||p(i),this._handleMonitorNotify(i)}}async printSync(t,e,i){const s=t.map((t=>{const e={params:"",printdlgshow:"0",nobillnode:"1",btnprint:"1",...t,cmdid:"7",...t.signature?{signature:t.signature}:{}};if(e.print)try{e.print=JSON.parse(e.print)}catch(t){}return{inputData:e}}));try{const t=l(),r=await this.messageCollect(t,{exec:"printA",data:s});if(r&&Array.isArray(r)){r.some((t=>"success"===t.res.result))?null==e||e(r):(null==i||i(r),this._handleMonitorNotify(r))}else{const t="打印命令返回无效数据";this._handleMonitorNotify(r||""),null==i||i({type:"printError",message:t,result:!1,errinfo:t})}}catch(t){const e={error:t,message:"打印失败"};null==i||i(e),this._handleMonitorNotify(e)}}async printDirect({templateId:t,formatId:e,params:i="",paramsArr:s,authorizationKey:r,print:n,signature:o,printdlgshow:l,nobillnode:c,copies:h=1,isDownloadFile:m=!0,messageTimeout:p=0},u,f,g,w="printDirect"){const y=a(e);if(e=this.getIReportFormatId(y,e),y&&d&&this._isHiprint){if(!this.isConnectHiPrint)return void f({message:"请连接hiPrint客户端"});const s=await this._queryPrintForBase64(t,e,i,r);if(!s.success)return f({message:s.resultMsg});const{base64:n,formatId:a}=s.map;return this.base64Fragment=n,this._successCallbackFn=u,this._errorCallbackFn=f,void this.hiPrintSocket.emit("news",{printerList:this.printerList,type:"askPrinterTemplate",markTemplateId:a,pdf_stream:this.base64Fragment})}await this._queryProxyOrigin();const v=await this._testConnection();if(!this._handleResultTest(v,f))return!1;try{const r=await this._handleEventDirect({templateId:t,formatId:e,params:i,paramsArr:s,cmdid:"7",print:n,signature:o,printdlgshow:l,nobillnode:c,copies:h,messageTimeout:p}),a=this._handleResult(r,f,g);if(!a)return!1;m&&["downloadPDF"].includes(w)&&await this._browserPrint(a,w),null==u||u(a)}catch(t){const e="printDirect"===w?"打印失败":"下载失败",i="timeout"===(null==t?void 0:t.type)?{...t,message:e}:{message:e};null==f||f(i),this._handleMonitorNotify(i)}}_downloadPDF(t){return this.webview?this.postMessage({exec:"pdf",data:{file:t}}):m.get(this.printOrigin+"/download",{params:{inputData:t}}).then((({data:t})=>t))}async downloadPDF(t,i,s){if(this.webview&&this.downloadPath&&(Reflect.has(t,"print")||Reflect.set(t,"print",{print:"1",type:"1"}),!t.print.filename)){const e=c(new Date,"yyyy-MM-dd"),i=l(),s=c(new Date,"yyyyMMddHHmmss")+i;t.print.filename=`${this.downloadPath}/${e}/${s}/${s}`.replace(/\\/g,"/")}const r=a(t.formatId);if(t.formatId=this.getIReportFormatId(r,t.formatId),r&&d&&this._isHiprint){const e=await this._queryPrintForPdf(t.templateId||"",t.formatId,t.params||"",t.authorizationKey);return e?(n(e,"downloadPDF"),i({file:e})):null==s?void 0:s("获取文件失败!")}this.printDirect(t,(async t=>{t||s(null);const r=this,n=await async function(t){const i=[],s=JSON.parse(t);if(!e(s))return await r._downloadPDF("");if(1===s.length)return await r._downloadPDF(s[0]||"");for(let t=0,e=s.length;t<e;t++)i.push(await r._downloadPDF(s[t]||""));return i}(t.filedir);i(n,t)}),(t=>s(t)),(t=>{console.log(t)}),"downloadPDF")}async print({templateId:t,formatId:e,params:i="",messageTimeout:s=0},r,n){const a=await this._testConnection();if(!this._handleResultTest(a,n))return!1;const o=await this.queryPrintData({templateId:t,formatId:e,params:i,messageTimeout:s},void 0,n);if(!o)return!1;const l=this.printFileData({formatId:e,file:o.file,printerName:o.printerName},void 0,n);if(!l)return!1;r&&r(l)}async queryPrintData({templateId:t,formatId:e,params:i="",messageTimeout:s=0},r,n){const a=await this._testConnection();if(!this._handleResultTest(a,n))return!1;const o=await this._handleEventQueryPrintData(t,e,i,s,n);return!!o&&(r&&r(o),o)}async printFileData({formatId:t,file:e,printerName:i="Default"},s,r){const n=await this._testConnection();if(!this._handleResultTest(n,r))return!1;const a=await this._callPrintWithFile({formatId:t,printname:i,file:e}),o=this._handleResult(a,r);return!!o&&(s&&s(o),o)}async editPrintFormat({templateId:t,formatId:e,params:i,token:s,messageTimeout:r=0},n,a){const o=await this._testConnection();if(!this._handleResultTest(o,a))return!1;const l=await this._handleEventEditFormat({templateId:t,formatId:e,params:i,token:s,messageTimeout:r}),c=this._handleResult(l,a);if(!c)return!1;n&&n(c)}async addPrintFormat({templateId:t,params:e,token:i},s,r){const n=await this._testConnection();if(!this._handleResultTest(n,r))return!1;const a=await this._handleEventEditFormat({templateId:t,params:e,token:i}),o=this._handleResult(a,r);if(!o)return!1;s&&s(o)}}export{P as Print};
|
|
1
|
+
import t from"axios";import{isArray as e}from"lodash-es";import{IdentityVerificationDialog as i,PreviewDialog as s}from"./dialog.js";import{getFileUrl as r,useBrowserPrint as n,isIReport as a}from"./browserPrint.js";import{getCurrentInstance as o}from"vue";import{uuidGenerator as l}from"../../../../shared/utils/index.js";import{format as c}from"date-fns";import{io as h}from"socket.io-client";const p=String(navigator.platform).toLowerCase().includes("linux"),d=t.create({timeout:6e4,withCredentials:!1}),m=`${window.location.protocol}//${window.location.host}`,u=`${m}/fdp-api/print/assembly/printIReport`,f=`${m}/bi-api/reprot/print/open/client/printIReportForBase64`,g=`${m}/bi-api/reprot/print/open/client/previewIReport`,w=`${m}/bi-api/reprot/print/open/client/getRemote`,y=`${m}/printService/file`;let v=null;class P{constructor(){var t,e,r;if(this.webview=null,this.dialog=new i,this.dialogPreview=new s,this.instance=null,this.downloadPath="",this.printOrigin="http://127.0.0.1:11111",this.isRemote=!1,this.CMonitor=null,this.queryServicesParams=null,this.isConnectHiPrint=!1,this.clientInfo=null,this.printerList=[],this.hiPrintSocket=null,this.base64Fragment="",this._successCallbackFn=null,this._errorCallbackFn=null,this._isHiprint=!1,this.messageHandlerQueue=[],this.getIReportFormatId=(t,e)=>t?e.split("_")[1]:e,v)return v;v=this,p&&this._isHiprint&&this._initDomesticSystem();const n=window;this.CMonitor=n.$CMonitor;try{this.webview=n.top?null==(t=n.top.chrome)?void 0:t.webview:null==(e=n.chrome)?void 0:e.webview}catch(t){console.log(t),this.webview=null==(r=n.chrome)?void 0:r.webview}if(this.webview){this.currentMessageHandler=this.messageHandler.bind(this),this.webview.addEventListener("message",this.currentMessageHandler);try{this.webview.postMessage({exec:"config",data:""})}catch(t){const e="当前浏览器版本不支持获取配置接口";this._handleMonitorNotify(e),console.log("非封装浏览器或者"+e)}}}messageHandler(t){var e;if(console.log("打印事件message",t),!t)return this._handleMonitorNotify("接收到空的浏览器事件,"+t),console.log("当前回执",t,"接收到空的浏览器事件");let i;try{i=JSON.parse(t.data||"{}")}catch(e){console.log("解析e.data失败,"+e),this._handleMonitorNotify("解析e.data失败,"+t)}if(["print","pdf","resetprint"].includes(null==i?void 0:i.cmd)){console.log("打印命令执行了",i);const e=this.messageHandlerQueue.shift();if(!e)return console.log("当前回执",t,"没有可用的handler");const{resolve:s,reject:r}=e;try{if("resetprint"===(null==i?void 0:i.cmd))return void s({result:(null==i?void 0:i.res)?"success":"fail"});s(i.res||"")}catch(t){r(t)}}else"config"===(null==i?void 0:i.exec)&&(this.downloadPath=(null==(e=i.res)?void 0:e.downloadpath)||"")}_initDomesticSystem(){try{this.hiPrintSocket=h("http://127.0.0.1:17521",{reconnectionAttempts:3,transports:["websocket"],auth:{token:"no-use-vue-plugin-hiprint"}}),this.hiPrintSocket&&(this.hiPrintSocket.on("connect",(()=>{this.isConnectHiPrint=!0})),this.hiPrintSocket.on("disconnect",(()=>{this.isConnectHiPrint=!1,this.hiPrintSocket=null})),this.hiPrintSocket.on("clientInfo",(t=>{console.log("获取到客户端信息>>>>>",t),t.clientUrl&&(this.clientInfo=t)})),this.hiPrintSocket.on("printerList",(t=>{this.printerList=t,console.log("获取到打印机列表信息>>>>>",t)})),this.hiPrintSocket.on("success",(t=>{console.log("打印成功>>>>>",t),this.base64Fragment="",this._successCallbackFn&&this._successCallbackFn(t)})),this.hiPrintSocket.on("replayPrinterTemplate",(t=>{console.log("获取到数据的回复>>>>>",t),t&&this.hiPrintSocket.emit("news",t)})),this.hiPrintSocket.on("error",(t=>{console.log("打印失败>>>>>",t),this.base64Fragment="",this._errorCallbackFn&&this._errorCallbackFn(t)})))}catch(t){console.log("hiprint系统连接失败",t)}}async getPicAndUpload(t){try{const e=t=>"[object Object]"===Object.prototype.toString.call(t);if("success"===(null==t?void 0:t.result)&&"Y"==(null==t?void 0:t.uploadTemplateFlag)&&!(null==t?void 0:t.filebase64)&&this.queryServicesParams){const t=e(this.queryServicesParams.params)?this.queryServicesParams.params:JSON.parse(this.queryServicesParams.params);t.uploadTemplateFlag="Y",this.queryServicesParams.params=JSON.stringify(t),this.queryServicesParams.cmdid="7",this.queryServicesParams.print={print:1,type:6,zip:0},this.queryServicesParams.paramsArr=[{params:JSON.stringify(t)}];await this._queryBase64ServicesPrint(this.queryServicesParams)}}catch(t){console.log(t)}finally{this.queryServicesParams=null}}async postMessage(t,e=0){if(!this.webview)return Promise.reject();const i=l();return e&&e>0?this.messageCollectAndNotifyFail(i,t,e):this.messageCollect(i,t)}messageCollect(t,e){return new Promise(((i,s)=>{this.messageHandlerQueue.push({resolve:i,reject:s,id:t}),this.webview.postMessage(e)}))}messageCollectAndNotifyFail(t,e,i){return Promise.race([new Promise(((i,s)=>{this.messageHandlerQueue.push({resolve:i,reject:s,id:t}),this.webview.postMessage(e)})),new Promise(((e,s)=>{setTimeout((()=>{const e=this.messageHandlerQueue.findIndex((e=>e.id===t));e>-1&&this.messageHandlerQueue.splice(e,1),s({type:"timeout"})}),i)}))])}destroy(){}show(...t){return this.dialog.show(...t)}showPreview(...t){return this.dialogPreview.show(...t)}_testConnection(){return this.webview?Promise.resolve(!0):new Promise((t=>{d({url:`${this.printOrigin}/test`,method:"get",withCredentials:!1,params:{inputdata:{result:"success"}}}).then((({data:e})=>{"success"===e.result?t(!0):t(!1)})).catch((e=>{t(!1)}))}))}resetPrinter(t){return this.webview?this.postMessage({exec:"resetprint",data:{formatID:t}}):d({url:`${this.printOrigin}/services/printset`,method:"get",withCredentials:!1,params:{inputdata:t}}).then((({data:t})=>t))}_queryServicesPrint(e){return this.webview?this.postMessage({exec:"print",data:{inputData:e}},null==e?void 0:e.messageTimeout):t({url:this.printOrigin+"/services/print",method:"get",params:{inputData:JSON.stringify(e)}}).then((({data:t})=>t))}_queryBase64ServicesPrint(t){return this.webview?this.postMessage({exec:"print",data:{inputData:t}}):d({url:"/services/Printqueue",method:"get",params:{inputData:JSON.stringify(t)}}).then((({data:t})=>t))}_callPrintWithFile(t){const e={cmdid:"7",flag:"1"},i={inputData:JSON.stringify(Object.assign({},e,t))};return this.webview?this.postMessage({exec:"print",data:s(i)}):d({url:this.printOrigin+"/PrintLocal",method:"post",data:i,transformRequest:[s]}).then((({data:t})=>t));function s(t){let e="";for(const i in t)e+=encodeURIComponent(i)+"="+encodeURIComponent(t[i])+"&";return e=e.slice(0,-1),e}}_handleMonitorNotify(t){var e,i;null==(i=null==(e=this.CMonitor)?void 0:e.notify)||i.call(e,{name:"custom_info",message:t,businessName:"打印sdk"})}_handleResult(t,e,i){if(!t){const t="打印命令返回空数据";return this._handleMonitorNotify(""),null==e||e({type:"printError",message:t,result:!1,errinfo:t}),!1}if("success"!==t.result){const s=t.message||t.Message;this._handleMonitorNotify(s);const r={type:"printError",message:s,result:t.result,errinfo:t.errinfo};return"cancel"==t.result?(i&&i({type:"printCancel",message:s,result:t.result,errinfo:t.errinfo}),!1):(null==e||e(r),!1)}return t}_handleResultTest(t,e){return!!t||(console.log("notInstalledApp"),null==e||e({type:"notInstalledApp",message:"请打开打印服务器插件"}),!1)}async _handleEventQueryPrintData(t,e,i,s,r){const n={templateId:t,formatId:e,params:i,cmdid:"7",messageTimeout:s},a=await this._queryServicesPrint(n);return this._handleQueryPrintDataResult(a,e,r)}_handleQueryPrintDataResult(t,e,i){if(!(null==t?void 0:t.file)){try{const e=t.message||t.Message;console.log(e),null==i||i({type:"queryPrintDataFailure",message:e})}catch(t){console.log(t)}return!1}return{file:t.file,printerName:t.defprinter,pageCount:t.pagecount,formatId:e}}async _handleEventDirect({templateId:t,formatId:e,params:i,paramsArr:s,cmdid:r,print:n,signature:a,copies:o=1,printdlgshow:l="0",nobillnode:h="1",btnprint:p="1",messageTimeout:d=0}){const m={templateId:t,formatId:e,params:i,cmdid:r,nobillnode:h,printdlgshow:l,btnprint:p,copies:o,messageTimeout:d,...a?{signature:a}:{}};if(s&&(m.paramsArr=s),n){try{n=JSON.parse(n)}catch(t){}m.print=n}else if(this.isRemote){const t=c(new Date,"yyyyMMddHHmmss");m.print={print:"1",type:"1",zip:"0",filename:`F:\\WorkSpace\\crmweb\\web\\${t}\\${t}`}}return this.queryServicesParams=m,await this._queryServicesPrint(m)}async _handleEventEditFormat({templateId:t,formatId:e="",params:i="",token:s,messageTimeout:r=0}){const n={};let a={};try{a=Object.assign({},n,JSON.parse(i))}catch(t){a=n}const o={templateId:t,formatId:e,cmdid:"9",token:s,params:JSON.stringify(a),messageTimeout:r};return await this._queryServicesPrint(o)}async _queryProxyOrigin(){if(this.isRemote)return;const{data:t}=await d({method:"get",url:w})||{},{map:e={}}=t;e.isRemote&&(this.printOrigin=m+"/printService",this.isRemote=!0)}async _queryPrintFile(t,e=""){const{data:i}=await d({method:"post",url:u,responseType:"blob",params:{formatId:t.split("_")[1],params:e}})||{};return i}paramsSerializer(t){return Object.keys(t).forEach((e=>{const i=t[e];t[e]=i,"biParams"==e&&(t[e]=encodeURIComponent(i))})),t}async _queryPrintForBase64(t,e,i="",s){const r="object"==typeof i?i:JSON.parse(i),{data:n}=await d({method:"post",url:f,params:{id:t,formatId:e,params:this.paramsSerializer(r),authorizationKey:s}})||{};return n}async _queryPrintForPdf(t,e,i="",s){const r="object"==typeof i?i:JSON.parse(i),{data:n}=await d({method:"post",url:g,responseType:"blob",params:{id:t,formatId:e,params:this.paramsSerializer(r),authorizationKey:s}})||{};return n}async _browserPrint(t,e){if(this.isRemote){const{filedir:i}=t,s=JSON.parse(i)[0].replace(/\\/g,"/").split("/"),a=s[s.length-2],o=s[s.length-1],l=await r(`${y}/${a}/${o}`),c=n(null,e,l);if("preview"===e)return c}}_base64ToBlob(t,e){const i=window.atob(t);let s=i.length;const r=new Uint8Array(s);for(;s--;)r[s]=i.charCodeAt(s);return new Blob([r],{type:e})}async preview({templateId:t,formatId:e,params:i="",paramsArr:s,authorizationKey:r,signature:l,btnprint:c,messageTimeout:h=0},d,m){const u=a(e);if(e=this.getIReportFormatId(u,e),u&&p&&this._isHiprint){const s=await this._queryPrintForPdf(t,e,i,r);if(!s)return null==m?void 0:m("获取文件失败!");const a=n(s,"preview");return this.instance||(this.instance=o()),this.showPreview(this.instance,a),null==d?void 0:d({file:s})}await this._queryProxyOrigin();const f=await this._testConnection();if(!this._handleResultTest(f,m))return!1;try{const r=await this._handleEventDirect({templateId:t,formatId:e,params:i,paramsArr:s,cmdid:this.isRemote?"7":"8",signature:l,btnprint:c,messageTimeout:h}),n=this._handleResult(r,m);if(!n)return!1;if(this.isRemote){const t=await this._browserPrint(n,"preview");this.instance||(this.instance=o()),this.showPreview(this.instance,t)}await this.getPicAndUpload(n),null==d||d(n)}catch(t){const e="预览失败",i="timeout"===(null==t?void 0:t.type)?{...t,message:e}:{message:e};null==m||m(i),this._handleMonitorNotify(i)}}async printSync(t,e,i){const s=t.map((t=>{const e={params:"",printdlgshow:"0",nobillnode:"1",btnprint:"1",...t,cmdid:"7",...t.signature?{signature:t.signature}:{}};if(e.print)try{e.print=JSON.parse(e.print)}catch(t){}return{inputData:e}}));try{const t=l(),r=await this.messageCollect(t,{exec:"printA",data:s});if(r&&Array.isArray(r)){r.some((t=>"success"===t.res.result))?null==e||e(r):(null==i||i(r),this._handleMonitorNotify(r))}else{const t="打印命令返回无效数据";this._handleMonitorNotify(r||""),null==i||i({type:"printError",message:t,result:!1,errinfo:t})}}catch(t){const e={error:t,message:"打印失败"};null==i||i(e),this._handleMonitorNotify(e)}}async printDirect({templateId:t,formatId:e,params:i="",paramsArr:s,authorizationKey:r,print:n,signature:o,printdlgshow:l,nobillnode:c,copies:h=1,isDownloadFile:d=!0,messageTimeout:m=0},u,f,g,w="printDirect"){const y=a(e);if(e=this.getIReportFormatId(y,e),y&&p&&this._isHiprint){if(!this.isConnectHiPrint)return void f({message:"请连接hiPrint客户端"});const s=await this._queryPrintForBase64(t,e,i,r);if(!s.success)return f({message:s.resultMsg});const{base64:n,formatId:a}=s.map;return this.base64Fragment=n,this._successCallbackFn=u,this._errorCallbackFn=f,void this.hiPrintSocket.emit("news",{printerList:this.printerList,type:"askPrinterTemplate",markTemplateId:a,pdf_stream:this.base64Fragment})}await this._queryProxyOrigin();const v=await this._testConnection();if(!this._handleResultTest(v,f))return!1;try{const r=await this._handleEventDirect({templateId:t,formatId:e,params:i,paramsArr:s,cmdid:"7",print:n,signature:o,printdlgshow:l,nobillnode:c,copies:h,messageTimeout:m}),a=this._handleResult(r,f,g);if(!a)return!1;d&&["downloadPDF"].includes(w)&&await this._browserPrint(a,w),null==u||u(a)}catch(t){const e="printDirect"===w?"打印失败":"下载失败",i="timeout"===(null==t?void 0:t.type)?{...t,message:e}:{message:e};null==f||f(i),this._handleMonitorNotify(i)}}_downloadPDF(t){return this.webview?this.postMessage({exec:"pdf",data:{file:t}}):d.get(this.printOrigin+"/download",{params:{inputData:t}}).then((({data:t})=>t))}async downloadPDF(t,i,s){if(this.webview&&this.downloadPath&&(Reflect.has(t,"print")||Reflect.set(t,"print",{print:"1",type:"1"}),!t.print.filename)){const e=c(new Date,"yyyy-MM-dd"),i=l(),s=c(new Date,"yyyyMMddHHmmss")+i;t.print.filename=`${this.downloadPath}/${e}/${s}/${s}`.replace(/\\/g,"/")}const r=a(t.formatId);if(t.formatId=this.getIReportFormatId(r,t.formatId),r&&p&&this._isHiprint){const e=await this._queryPrintForPdf(t.templateId||"",t.formatId,t.params||"",t.authorizationKey);return e?(n(e,"downloadPDF"),i({file:e})):null==s?void 0:s("获取文件失败!")}this.printDirect(t,(async t=>{t||s(null);const r=this,n=await async function(t){const i=[],s=JSON.parse(t);if(!e(s))return await r._downloadPDF("");if(1===s.length)return await r._downloadPDF(s[0]||"");for(let t=0,e=s.length;t<e;t++)i.push(await r._downloadPDF(s[t]||""));return i}(t.filedir);i(n,t)}),(t=>s(t)),(t=>{console.log(t)}),"downloadPDF")}async print({templateId:t,formatId:e,params:i="",messageTimeout:s=0},r,n){const a=await this._testConnection();if(!this._handleResultTest(a,n))return!1;const o=await this.queryPrintData({templateId:t,formatId:e,params:i,messageTimeout:s},void 0,n);if(!o)return!1;const l=this.printFileData({formatId:e,file:o.file,printerName:o.printerName},void 0,n);if(!l)return!1;r&&r(l)}async queryPrintData({templateId:t,formatId:e,params:i="",messageTimeout:s=0},r,n){const a=await this._testConnection();if(!this._handleResultTest(a,n))return!1;const o=await this._handleEventQueryPrintData(t,e,i,s,n);return!!o&&(r&&r(o),o)}async printFileData({formatId:t,file:e,printerName:i="Default"},s,r){const n=await this._testConnection();if(!this._handleResultTest(n,r))return!1;const a=await this._callPrintWithFile({formatId:t,printname:i,file:e}),o=this._handleResult(a,r);return!!o&&(s&&s(o),o)}async editPrintFormat({templateId:t,formatId:e,params:i,token:s,messageTimeout:r=0},n,a){const o=await this._testConnection();if(!this._handleResultTest(o,a))return!1;const l=await this._handleEventEditFormat({templateId:t,formatId:e,params:i,token:s,messageTimeout:r}),c=this._handleResult(l,a);if(!c)return!1;n&&n(c)}async addPrintFormat({templateId:t,params:e,token:i},s,r){const n=await this._testConnection();if(!this._handleResultTest(n,r))return!1;const a=await this._handleEventEditFormat({templateId:t,params:e,token:i}),o=this._handleResult(a,r);if(!o)return!1;s&&s(o)}}export{P as Print};
|
|
@@ -466,9 +466,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
466
466
|
hide: boolean;
|
|
467
467
|
}>;
|
|
468
468
|
draggable: boolean;
|
|
469
|
-
isHighlightRow: boolean;
|
|
470
469
|
idx: number;
|
|
471
470
|
isHighlight: boolean;
|
|
471
|
+
isHighlightRow: boolean;
|
|
472
472
|
isFieldSet: boolean;
|
|
473
473
|
fieldDescribeMode: "column" | "tooltip";
|
|
474
474
|
}>;
|
|
@@ -488,9 +488,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
488
488
|
hide: boolean;
|
|
489
489
|
}>;
|
|
490
490
|
draggable: boolean;
|
|
491
|
-
isHighlightRow: boolean;
|
|
492
491
|
idx: number;
|
|
493
492
|
isHighlight: boolean;
|
|
493
|
+
isHighlightRow: boolean;
|
|
494
494
|
isFieldSet: boolean;
|
|
495
495
|
fieldDescribeMode: "column" | "tooltip";
|
|
496
496
|
}>;
|
|
@@ -612,9 +612,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
612
612
|
hide: boolean;
|
|
613
613
|
}>;
|
|
614
614
|
draggable: boolean;
|
|
615
|
-
isHighlightRow: boolean;
|
|
616
615
|
idx: number;
|
|
617
616
|
isHighlight: boolean;
|
|
617
|
+
isHighlightRow: boolean;
|
|
618
618
|
isFieldSet: boolean;
|
|
619
619
|
fieldDescribeMode: "column" | "tooltip";
|
|
620
620
|
}>;
|
|
@@ -317,9 +317,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
317
317
|
hide: boolean;
|
|
318
318
|
}>;
|
|
319
319
|
draggable: boolean;
|
|
320
|
-
isHighlightRow: boolean;
|
|
321
320
|
idx: number;
|
|
322
321
|
isHighlight: boolean;
|
|
322
|
+
isHighlightRow: boolean;
|
|
323
323
|
isFieldSet: boolean;
|
|
324
324
|
fieldDescribeMode: "column" | "tooltip";
|
|
325
325
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defineComponent as e,provide as o,ref as t,computed as r,toRaw as a,openBlock as i,createElementBlock as s,mergeProps as l,unref as n,createElementVNode as m,createVNode as u,isRef as f,withCtx as d,createBlock as c,createCommentVNode as p,createTextVNode as v}from"vue";import{useTheme as
|
|
1
|
+
import{defineComponent as e,provide as o,ref as t,computed as r,toRaw as a,openBlock as i,createElementBlock as s,mergeProps as l,unref as n,createElementVNode as m,createVNode as u,isRef as f,withCtx as d,createBlock as c,createCommentVNode as p,createTextVNode as v}from"vue";import{useTheme as g}from"../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import{isArray as h,cloneDeep as _,isFunction as y}from"lodash-es";import"@vue/shared";import{uuidGenerator as x,traverse as j}from"../../../shared/utils/index.js";import"@vueuse/shared";import"../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{NSelect as C,NSpace as k}from"naive-ui";import{useVersion as F}from"../../../shared/hooks/useVersion.js";import L from"../../../shared/components/VueDraggable/src/vuedraggable.js";import V from"./components/FormConfigCreator.vue.js";import b from"./components/FormConfigDragDisplay.vue.js";import w from"./components/FormConfigEdit.vue.js";import M from"./components/FormConfigEventSetting.vue.js";import R from"./components/FormConfigMaterialItem.js";import{useDataNormalize as D}from"./hooks/useDataNormalize.js";import{InjectionFormConfigProps as E,InjectionFormConfigEmit as H,InjectionFieldList as S,InjectionMaterialList as I,InjectionLowCodeReactions as U,InjectionActiveFieldItem as O,FORM_CONFIG_GROUP as P}from"./constants/index.js";import{fieldItemNormalize as T}from"./utils/index.js";import{useSortableConfig as z}from"./hooks/useSortalbeConfig.js";import"./hooks/useConfigurationField.js";const A=["id"],B={class:"form-config__material"},N=m("header",{class:"form-config__materialHeader"},"物料区",-1),W={class:"form-config__displayWrapper"},q={class:"form-config__displayHeader"},G={class:"form-config__config"},J=m("header",{class:"form-config__configHeader"},"配置区",-1),K={class:"form-config__configContent"};var Q=e({__name:"FormConfig",props:{maxHeight:{type:String},fieldVisitor:{type:Object},textFormatter:{type:Function},formRenderRef:{type:Object},extraMaterialList:{type:[Array,Function]},showLowCodeReactions:Boolean,formProps:{type:Object},beforeMove:{type:Function}},emits:["addItem","removeItem","reactionsValidateFailure"],setup(e,{expose:Q,emit:X}){const Y=e;o(E,Y),o(H,X);const Z=x(),$=g(),ee=t([]);o(S,ee);const oe=t([]);o(I,oe);const te=t([]);function re(e){ee.value.some((o=>o.key===e.key))||ee.value.push(e)}o(U,te);const ae=(e,o)=>y(Y.textFormatter)?Y.textFormatter(e,o):o,ie=t();o(O,ie);const se=t(),{transform:le,inverseTransform:ne}=D(Y),me=r({get:()=>null,set(e){if(!e)return;const o=fe.value.find((o=>o.key===e));o&&(o.__extra=!0,T(o),oe.value.push(o),X("addItem",o))}}),ue=t([]),fe=r((()=>{if(!h(ue.value))return[];const e=[];return j([...oe.value,...ee.value],(o=>e.push(o.key))),ue.value.filter((o=>!e.find((e=>e===o.key))))}));async function de(){Y.extraMaterialList&&!ue.value.length&&(ue.value=y(Y.extraMaterialList)?await Y.extraMaterialList():Y.extraMaterialList)}return Q({loadData({fieldList:e,lowCodeReactions:o=[]}){let t=[],r=[];e.forEach((e=>{return!1===(o=_(a(e))).show?r.push(o):t.push(o),void T(o);var o})),ee.value=le(t),oe.value=r,te.value=o,ie.value=void 0},validate(){var e;return null==(e=se.value)?void 0:e.validate()},getData:(e=!1)=>({fieldList:ne(_(a(ee.value)),e,{show:!0}),materialList:ne(_(a(oe.value)),e,{show:!1}),lowCodeReactions:_(a(te.value))}),clearExtraList(){ue.value=[]}}),(o,t)=>(i(),s("section",l({class:"form-config",style:{"--max-height":e.maxHeight,...n($)},id:n(Z)},n(F)()),[m("section",B,[N,u(n(L),l(z({fieldList:ee,materialList:oe,hooks:{beforeMove:Y.beforeMove}}),{class:"form-config__materialContent",modelValue:n(oe),"onUpdate:modelValue":t[0]||(t[0]=e=>f(oe)?oe.value=e:null)}),{item:d((({element:e})=>[u(n(R),{"form-config-item":e,"text-formatter":ae,"material-List":n(oe)},null,8,["form-config-item","material-List"])])),_:1},16,["modelValue"]),e.extraMaterialList?(i(),c(n(C),{key:0,class:"form-config__materialExtraList",filterable:"",value:n(me),"onUpdate:value":t[1]||(t[1]=e=>f(me)?me.value=e:null),placeholder:"请选择额外物料",options:n(fe),"label-field":"name","value-field":"key",onFocus:de},null,8,["value","options"])):p("v-if",!0)]),m("section",W,[m("header",q,[v(" 布局区 "),u(n(k),null,{default:d((()=>[e.showLowCodeReactions?(i(),c(M,{key:0,modelValue:te.value,"onUpdate:modelValue":t[2]||(t[2]=e=>te.value=e),onValidateFailure:t[3]||(t[3]=e=>X("reactionsValidateFailure",e))},null,8,["modelValue"])):p("v-if",!0),u(V,{onSubmit:re})])),_:1})]),u(b,{class:"form-config__displayContent",group:n(P),"text-formatter":ae,modelValue:n(ee),"onUpdate:modelValue":t[4]||(t[4]=e=>f(ee)?ee.value=e:null)},null,8,["group","modelValue"])]),m("section",G,[J,m("section",K,[u(w,{ref_key:"formConfigEditRef",ref:se,uuid:n(Z),"bind-form-render-ref":e.formRenderRef,"form-props":e.formProps},null,8,["uuid","bind-form-render-ref","form-props"])])])],16,A))}});export{Q as default};
|
|
@@ -8,3 +8,4 @@ export declare function bindHover(formConfigItem: FormConfigItem): {
|
|
|
8
8
|
'is-hovering': boolean;
|
|
9
9
|
};
|
|
10
10
|
export declare function findFieldItemByKey(fieldList: Nullable<FieldItem[]>, key: string): FieldItem | undefined;
|
|
11
|
+
export declare function fieldItemNormalize(item: FormConfigItem): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{traverse as e}from"../../../../shared/utils/index.js";import{isArray as
|
|
1
|
+
import{traverse as e}from"../../../../shared/utils/index.js";import{isArray as n}from"lodash-es";import{ref as r}from"vue";function i(e){return{ALL_LINE:24,HALF_LINE:12,FIVE_SIX:20,TWO_THREE:16,ONE_THREE:8,THREE_FOUR:18,ONE_FOUR:6,ONE_SIX:4,ONE_EIGHT:3}[e]||24}const o=r();function t(e){return{onMouseenter:()=>o.value=e,onMouseleave:()=>o.value=void 0,"is-hovering":o.value===e}}function l(r,i){if(!n(r)||!r.length)return;let o;return e(r,((e,n)=>{(null==e?void 0:e.val_key)===i&&(o=e,n())}),["children","properties"]),o}function u(e){"LINE_BAR"===e.type&&(e.children=[]),"COMBINATION"===e.type&&n(e.children)&&e.children.length&&e.children.forEach((e=>{e.__isCombinationChild=!0}))}export{t as bindHover,u as fieldItemNormalize,l as findFieldItemByKey,i as layoutWidthEnum2Column};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import"../../index.js";import{defineTablePlugin as e}from"../hooks/useTablePlugin.js";function n(){const n="keyboardEventPlugin";return e({name:n,apply(e){e.eventHooks.onKeydown.tap({name:n,before:"forceArrowKeyPlugin"},(({$event:e,$table:n},o,{emits:t})=>{let{row:r,column:l}=n.getSelectedCell()||n.getEditRecord()||{};if(!r||!l)return;const a=e.key;function i(e){var o,t,r;const a=null!=(t=null==(o=n.getColumns())?void 0:o.findIndex((e=>e===l)))?t:-1;a<0||(l=null!=(r=n.getColumns()[a+("left"===e?-1:1)])?r:l)}function u(e){var o;const t=n.getTableData().fullData.findIndex((e=>e===r));t<0||(r=null!=(o=n.getTableData().fullData[t+("up"===e?-1:1)])?o:r)}if(function({keyboardConfig:e={}}){return e.isArrow&&e.forceArrowKey}(o))switch(a){case"ArrowUp":u("up");break;case"ArrowDown":u("down");break;case"ArrowLeft":i("left");break;case"ArrowRight":i("right")}t("keyboard",{$table:n,key:a,index:n.getRowIndex(r),value:r[l.field],row:r,column:l})}))}})}export{n as keyboardEventPlugin};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defineComponent as t,ref as e,reactive as l,computed as a,watch as i,openBlock as n,createElementBlock as s,unref as
|
|
1
|
+
import{defineComponent as t,ref as e,reactive as l,computed as a,watch as i,openBlock as n,createElementBlock as s,unref as d,createCommentVNode as o,withDirectives as r,createElementVNode as c,normalizeClass as b,createVNode as u,withCtx as p,Fragment as f,renderList as h,createBlock as y,createTextVNode as v,toDisplayString as m,vShow as g,nextTick as C}from"vue";import{useMessage as L,NAnchor as I,NAnchorLink as S}from"naive-ui";import E from"./components/label-classify.vue.js";import{handleLabelColor as w}from"../../../shared/utils/vexutils.js";import x from"../../../shared/utils/vexutilsExpand.js";const A={key:0,class:"label-disable-wrap"},O=[c("p",{class:"label-disable-title"},"无可选标签",-1),c("p",{class:"label-disable-desc"},"请联系管理员进行标签管理设置",-1)],K={style:{height:"100%"}},j={class:"label-wrap"},k=["id"],T={class:"edit-label-type"};var B=t({__name:"LabelFormContent",props:{item:{default:()=>({})},isEdit:{type:Boolean,default:!0},isLock:{type:Boolean,default:!1},labelSelectedList:null,isChangeWindow:{type:Boolean},getLabelList:{type:Function,default:()=>Promise.resolve({rows:[]})},deleteLabel:{type:Function,default:()=>Promise.resolve({status:!0})},saveLabelItem:{type:Function,default:()=>Promise.resolve({status:!0})},labelOptions:null,sourceType:{default:""},explicit:{type:Boolean,default:!1}},emits:["explicitOnChange","change","updateLabelData"],setup(t,{expose:B,emit:D}){const V=t,F=L(),P=e(null),_=l({editLabelItem:{},inited:!1,labelSelectedEdit:[],labelAnchorKey:"",cacheAnchorKey:"",labelConfig:{}});let N=e(0);const W=a((()=>{if(!_.inited)return!1;let t=_.labelConfig;return!t||Object.keys(t).every((e=>!t[e].itemList))})),$=a((()=>{let t=[].concat(..._.labelSelectedEdit,...V.labelSelectedList);return J(t,"labelId")})),q=a((()=>{const t=$.value||[];return Array.isArray(t)?t.map((t=>t.labelId)):[]})),J=(t,e)=>{let l={};return t.reduce(((t,a)=>(!l[a[e]]&&(l[a[e]]=t.push(a)),t)),[])},R=()=>{if(_.labelSelectedEdit=$.value,"object"==typeof _.labelConfig){Object.keys(_.labelConfig||{}).forEach((t=>{var e;let l=(null==(e=_.labelConfig[t])?void 0:e.itemList)||[];l.length&&l.forEach((t=>{q.value.includes(t.labelId)&&(t.isSelect=!0)}))}))}},z=(t,e)=>{if(!t)return;let l=Object.keys(t)||[];if(!l.length)return;let a=t[l[0]].curKey;if(e&&"string"==typeof e){let[i]=e.split("~"),n=l.find((e=>t[e]&&t[e].curKey&&t[e].curKey.includes(i)));n&&(a=t[n].curKey)}a&&Y(a)},G=(t,e)=>{e.showAdd=!0;const l=t.target.nextElementSibling;C((()=>{var t;null==(t=null==l?void 0:l.firstChild)||t.focus()}))},H=(t,e)=>{setTimeout((()=>{e.addVal?Q(e):e.showAdd=!1}),150)},M=(t,e)=>{e.addVal="",e.showAdd=!1},Q=async t=>{var e;if(!!t.itemList.filter((t=>!(t.isPublic&&1==t.isPublic))).find((e=>e.labelName===t.addVal)))return F.error("标签名称重复!"),!1;let l="";l=(null==(e=t.itemList)?void 0:e.length)?t.itemList[0].parentColor||t.parentColor||"":(null==t?void 0:t.parentColor)||"";const a={type:t.typeId,name:t.addVal,parentColor:l},{status:i}=await V.saveLabelItem(a,t);i&&(F.success("添加成功!"),D("updateLabelData"),t.showAdd=!1)},U=(t,e,l,a)=>{var i;const n=l.itemList,s=l.multipleChoice;let d=(null==(i=_.labelSelectedEdit)?void 0:i.length)&&x.clone(_.labelSelectedEdit,!0)||[];if(t){if(d.some((t=>t.labelId==e.labelId)))return;if(2==s){const{typeId:t,labelId:l}=e;d=d.filter((e=>e.typeId!==t)),n.forEach((t=>{t.labelId!==l&&(t.isSelect=!1)}))}d.push(e)}else{const t=d.findIndex((t=>t.labelId==e.labelId));-1!=t&&d.splice(t,1)}_.labelSelectedEdit=[...d],N.value++,V.explicit&&D("explicitOnChange",[..._.labelSelectedEdit])},X=async t=>{const{status:e}=await V.deleteLabel(t,V.item);if(e){F.success("删除成功!");for(const e in _.labelConfig){const l=_.labelConfig[e].itemList.findIndex((e=>e.labelId==t.labelId));-1!=l&&_.labelConfig[e].itemList.splice(l,1)}const e=_.labelSelectedEdit||[],l=V.labelSelectedList||[];if(e&&e.length){const l=e.findIndex((e=>e.labelId==t.labelId));-1!=l&&e.splice(l,1)}if(l&&l.length){const e=l.findIndex((e=>e.labelId==t.labelId));-1!=e&&l.splice(e,1),D("change",[...l],V.item)}D("updateLabelData")}else F.warning("删除失败")},Y=t=>{t&&setTimeout((()=>{let e,l="#"+t;e=P.value.querySelector("a[href='"+l+"']"),e&&e.click(),_.labelAnchorKey=t}),32)},Z=t=>{t.preventDefault()},tt=t=>{if(!t)return;let e=t.slice(1);_.cacheAnchorKey=e},et=()=>{var t;return null==(t=P.value)?void 0:t.querySelector(".right-label-wrap")};return i((()=>V.labelOptions),(t=>{t&&(()=>{var t;if(V.isLock)return;const e=JSON.parse(JSON.stringify(V.labelOptions));for(let l in e){let a=(null==(t=e[l])?void 0:t.typeId)||"";Object.assign(e[l],{curKey:`${l}_${a}}`})}_.labelConfig=e,C((()=>{let t;R(),V.explicit&&_.inited&&(t=_.labelAnchorKey),z(_.labelConfig,t),_.inited=!0}))})()}),{immediate:!0,deep:!0}),B({resetShowAdd:()=>{let{labelObj:t}=_.editLabelItem;if(t&&Object.keys(t).length)for(let e in t){let l=t[e];Object.assign(l,{showAdd:!1})}},handleLabelForm:t=>{t([..._.labelSelectedEdit||[]])},handleResetOptions:()=>{},hanldeSetLabelItem:(t,e)=>{if("object"==typeof _.labelConfig){Object.keys(_.labelConfig||{}).forEach((l=>{var a;let i=(null==(a=_.labelConfig[l])?void 0:a.itemList)||[];i.length&&i.forEach((l=>{t==l.labelId&&(l.isSelect=e)}))}))}if(!1===e&&Array.isArray(_.labelSelectedEdit)){const e=_.labelSelectedEdit.findIndex((e=>e.labelId==t));-1!=e&&_.labelSelectedEdit.splice(e,1)}}}),(e,l)=>(n(),s("div",{class:"c-label-form-content",ref_key:"labelFormContent",ref:P},[d(W)?(n(),s("div",A,O)):o("v-if",!0),r(c("div",K,[c("div",j,[o(" 表单内嵌打开标签组件的样式 "),o(' <div v-if="explicit" class="explicit-continer">\n\t\t\t\t\t<n-tabs :value="state.labelAnchorKey" type="card" @change="labelAnchorTabsOnChange" tab-position="top">\n\t\t\t\t\t\t<template v-for="(v, i) in state.labelConfig">\n\t\t\t\t\t\t\t<n-tab-pane :name="v.curKey">\n\t\t\t\t\t\t\t\t<span slot="tab">\n\t\t\t\t\t\t\t\t\t{{ i }}\n\t\t\t\t\t\t\t\t\t<span class="edit-label-type">({{ v.multipleChoice == 2 ? \'单\' : \'多\' }}选)</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<div class="explicit-label-wrap left-label-wrap">\n\t\t\t\t\t\t\t\t\t<div class="edit-label-content">\n\t\t\t\t\t\t\t\t\t\t<labelClassify\n\t\t\t\t\t\t\t\t\t\t\t:classifyItem="v"\n\t\t\t\t\t\t\t\t\t\t\t:handleLabelChange="handleLabelChange"\n\t\t\t\t\t\t\t\t\t\t\t:handleLabelColor="handleLabelColor"\n\t\t\t\t\t\t\t\t\t\t\t:handleDelLabel="handleDelLabel"\n\t\t\t\t\t\t\t\t\t\t\t:hanldeBlur="hanldeBlur"\n\t\t\t\t\t\t\t\t\t\t\t:handleAddLabel="handleAddLabel"\n\t\t\t\t\t\t\t\t\t\t\t:clearaddVal="clearaddVal"\n\t\t\t\t\t\t\t\t\t\t\t:isEdit="isEdit"\n\t\t\t\t\t\t\t\t\t\t\t:sourceType="sourceType"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</n-tab-pane>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</n-tabs>\n\t\t\t\t</div> '),o("\n\t\t\t\t\t普通标签样式\n\t\t\t\t\tv-else\n\t\t\t\t\texplicit\n\t\t\t\t "),c("div",{class:b(["left-label-wrap",{"total-left-label-wrap":t.isChangeWindow}])},[u(d(I),{"offset-target":et,type:"block",onClick:Z,onChange:tt},{default:p((()=>[(n(!0),s(f,null,h(_.labelConfig,((t,e)=>(n(),y(d(S),{href:`#${t.curKey}`,title:String(e)},null,8,["href","title"])))),256))])),_:1})],2),o(' v-if="!explicit" '),c("div",{class:b(["right-label-wrap",{"total-right-label-wrap":t.isChangeWindow}])},[(n(!0),s(f,null,h(_.labelConfig,((e,l)=>(n(),s("div",{key:l,class:"edit-label-content"},[c("div",{class:"edit-label",id:e.curKey},[v(m(l)+" ",1),c("span",T,"("+m(2==e.multipleChoice?"单":"多")+"选)",1)],8,k),u(E,{classifyItem:e,handleLabelChange:U,handleLabelColor:d(w),handleDelLabel:X,hanldeBlur:H,handleAddLabel:G,clearaddVal:M,isEdit:t.isEdit,sourceType:t.sourceType},null,8,["classifyItem","handleLabelColor","isEdit","sourceType"])])))),128))],2)])],512),[[g,!d(W)]])],512))}});export{B as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var u="data:image/png;base64,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";export{u as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var v="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAAC7CAMAAAB7NnPGAAAABGdBTUEAALGPC/
|
|
1
|
+
var v="data:image/png;base64,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";export{v as default};
|