Browse Source

更新材质选择器的内容

liwei 1 năm trước cách đây
mục cha
commit
ccbc56e1fb

+ 37 - 0
src/controllers/natsController.ts

@@ -165,4 +165,41 @@ export class BusController {
     }
     return this._conn.close();
   }
+
+  
+  async Public(subject:string, data:any) {
+    if (!this._isConned) {
+      await this.init();
+    }
+    const ret: { error: string; result: any } = { error: "", result: null };
+    if (!this._isConned) {
+      console.error("建立连接失败");
+      ret.error = "建立连接失败";
+      queenApi.showConfirm({
+        title: "数据请求失败",
+        content: "请求数据失败,请重新启动后再试",
+        type: "danger",
+      });
+      return false;
+    }
+
+    const sc = StringCodec();
+    try {
+      let req = Empty;
+      if (data) {
+        if (typeof data != "string") {
+          req = sc.encode(JSON.stringify(data));
+        } else {
+          req = sc.encode(data);
+        }
+      }
+      this._conn.publish(subject,req);
+
+    } catch (error: any) {
+      console.log( error);
+      return false
+    }
+
+    return true;
+  }
 }

+ 90 - 2
src/controllers/queentreeController.ts

@@ -1,3 +1,4 @@
+import { queenApi } from "queenjs";
 import { BusController } from "./natsController";
 
 export class  TreeController {
@@ -8,12 +9,99 @@ export class  TreeController {
 
     async selectOneMat() {
         const bus = this._bus;
-        const route = await bus.requestApi("queentree.local.router", {name:"selmat"})
+        const route = await bus.requestApi("queentree.local.router", {name:"selmatblack"})
         if (!route || !route.Url ) return;
         const url = route.Url;
         const payload = {}
-        const ret:any = await bus.RequestWebView("selmat", {dev:true, height: 600, width: 900, payload, url, alwaysOnTop:true,})
+        const ret:any = await bus.RequestWebView("selmatblack", {height: 600, width: 900, payload, url, alwaysOnTop:true,})
         console.log("selmat=>", ret);
         return ret.payload;
     }
+
+    async  SelectedPackComp(pack:any, prodId:string, compId:string) {
+        queenApi.showLoading("数据发送中")
+        const bus = this._bus;
+
+        const sid = bus.getQuery("sid")
+    
+        const ok = await bus.Public("packcomp.update." + sid, {pack, prodId, compId})
+        queenApi.hideLoading();
+    
+        if (!ok) {
+            queenApi.messageError("数据接收方已关闭");
+            return;
+        }
+        queenApi.messageSuccess("数据发送成功");
+    }
+    
+     async CloseWindow() {
+        const bus = this._bus;
+        const sid = bus.getQuery("sid")
+        const ok = await bus.Public("tree.selector.close", {sid})
+        queenApi.hideLoading();
+        if (!ok) {
+            queenApi.messageError("窗口关闭失败,请点击右上角关闭按钮");
+            return;
+        }
+        return true;
+    }
+    
+    async  CloseTreeOpen(name:string, payload?:any) {
+        const bus = this._bus;
+        await bus.Public("webview.close." + name, {name: name, payload})
+    }
+    
+    async  subscribeData(callback:any){
+        const bus = this._bus;
+        return await  bus.subscribe('tree.savaas.update.mat',callback)
+    }
+    
+     async subscribeTreeOpenFor(name:string, callback:any){
+        const bus = this._bus;
+        return await  bus.subscribe('webview.opened.'+name,callback)
+    }
+    
+     async GetSaveMatData() {
+        const bus = this._bus;
+        const sid = bus.getQuery("sid")
+        return await this.GetSessionData(sid);
+    }
+    
+     async GetPackListQueryData() {
+        const bus = this._bus;
+        const sid = bus.getQuery("sid")
+        return await this.GetSessionData(sid);
+    }
+    
+     async GetSessionData(sid:string) {
+        const bus = this._bus;
+
+        const matgroup = await bus.requestApi("tree.session.data", {sid})
+        queenApi.hideLoading();
+        if (!matgroup) {
+            queenApi.messageError("获取数据失败");
+            return;
+        }
+        return matgroup;
+    }
+    
+    async  SelectedPackList(list :any) {
+        const bus = this._bus;
+
+        queenApi.showLoading("数据发送中")
+    
+        const sid = bus.getQuery("sid")
+    
+        const ok = await bus.Public("packlist.update." + sid, list)
+        queenApi.hideLoading();
+    
+        if (!ok) {
+            queenApi.messageError("数据接收方已关闭");
+        } else {
+            queenApi.messageSuccess("数据发送成功");
+        }
+        setTimeout(()=>{
+            this.CloseWindow();
+        }, 1000)
+    }
 }

+ 31 - 1
src/pages/queentree/index.ts

@@ -1,3 +1,33 @@
 import { startApp } from "./App";
 import router from "./router";
-startApp(router, []);
+
+import { initAuth } from "@queenjs-modules/auth";
+import { Dict_Apis } from "@/dict/apis";
+
+function initLocalAuth() {
+
+    //获取token
+    const params = new URLSearchParams(decodeURIComponent(location.search))
+    const token =  params.get("token") as string;
+    if (token) {
+    localStorage.setItem("token", JSON.stringify(token))
+    }
+    const auth = initAuth({
+        config: {
+        httpConfig: {
+            baseURL: Dict_Apis.authLocal,
+        },
+        key: "queentreesku3d",
+        loginPath: "/login",
+        loginJumpPath: "/",
+        logoutJumpPath: "/login",
+
+        needCompanyLogin: false,
+        needRegister: true,
+        needResetPwd: true,
+        },
+    });
+  auth.actions.initUser();
+}
+
+startApp(router, [initLocalAuth]);

+ 1 - 1
src/pages/queentree/router.ts

@@ -1,7 +1,7 @@
 import { createRouter, createWebHashHistory, RouteRecordRaw } from "vue-router";
 const routes: Array<RouteRecordRaw> = [
   {
-    path: "/",
+    path: "/selmat",
     name: "home",
     // meta: {
     //   needAuth: true,

+ 32 - 4
src/pages/website/CreateMat/components/LibraryModal.tsx

@@ -1,3 +1,5 @@
+import { BusController } from "@/controllers/natsController";
+import { TreeController } from "@/controllers/queentreeController";
 import "@/modules/_default/viewerStorage";
 import {
   initQueentreeExplorer,
@@ -16,8 +18,13 @@ export default defineComponent({
   },
 
   setup(props) {
+    document.title = "选择材质球";
+
     const stepCtrol = new StepController(1);
     // const modal = useModal();
+    const _bus = new BusController();
+    _bus.init(_bus.getQuery("bus"));
+    const _tree = new TreeController(_bus);
 
     initQueentreeExplorer({
       config: {
@@ -27,14 +34,34 @@ export default defineComponent({
     });
 
     async function submit() {
-      try {
+     try {
         const branchFolder = stepCtrol.state.data.pickNodes[0];
-        // modal.submit(branchFolder);
+        const pack = await branchFolder.getAssetDetail();
+
+        let mat;
+        switch (branchFolder.nodeType) {
+          case "matGroupItem":
+            mat = pack.source.colorCards.find(
+              (d: any) => d.id == branchFolder.state.id
+            );
+            break;
+          case "packMat":
+            mat = pack.source.mats.find(
+              (d: any) => d.id == branchFolder.state.id
+            );
+            break;
+          case "mat":
+            mat = pack.source
+            break;
+        }
+        _tree.CloseTreeOpen("selmatblack", mat)
+        return;
       } catch (error: any) {
         Exception.error(error?.toString());
       }
+      _tree.CloseTreeOpen("selmatblack")
     }
-
+    
     return () => {
       const { nodeTypes } = props;
       return (
@@ -42,9 +69,10 @@ export default defineComponent({
           onSubmit={submit}
           onCancel={() =>{
             console.log("cancel")
+            _tree.CloseTreeOpen("selmatblack");
           }}
           control={stepCtrol}
-          lastStepText="发送"
+          lastStepText="确定"
           steps={[
             {
               title: "选择",