diff --git a/base-manager-ui/admin/.env.development b/base-manager-ui/admin/.env.development
index 66c33625eec671d5241bde4645cc62fa99b02b6f..84076298d74b0cf557bf59c506d31a13c2bdd355 100644
--- a/base-manager-ui/admin/.env.development
+++ b/base-manager-ui/admin/.env.development
@@ -1,7 +1,7 @@
 #寮€鍙戠幆澧�
 NODE_ENV = "development"
-VUE_APP_API_BASE_URL=http://192.168.0.250:11071
-VUE_APP_API_IMG_URL=http://192.168.0.250:11071/
+VUE_APP_API_BASE_URL=http://192.168.0.98:11071
+VUE_APP_API_IMG_URL=http://192.168.0.98:11071/
 # VUE_APP_API_BASE_URL=http://192.168.0.98:11078
 # VUE_APP_API_IMG_URL=http://192.168.0.98:11078/
 #VUE_APP_API_BASE_URL=http://10.12.185.213:11071
\ No newline at end of file
diff --git a/base-manager-ui/admin/src/pages/basicset/addmatter/components/AddSynopsis.vue b/base-manager-ui/admin/src/pages/basicset/addmatter/components/AddSynopsis.vue
index 72a51c0f33ac9cef02e53418743f9b85b8e605b2..92a10e070c81371fef1ba7268e003bb1058159f3 100644
--- a/base-manager-ui/admin/src/pages/basicset/addmatter/components/AddSynopsis.vue
+++ b/base-manager-ui/admin/src/pages/basicset/addmatter/components/AddSynopsis.vue
@@ -90,7 +90,7 @@
               </a-select>
               <a-input-number
                 v-model="baseform.legalTimeLimitShow"
-                :disabled="isTimely !== '2'"
+                :disabled="isTimely != '2'"
                 placeholder="璇疯緭鍏ュ伐浣滄棩鏁�"
                 :min="1"
                 style="width: 70%"
@@ -111,7 +111,7 @@
               </a-select>
               <a-input-number
                 v-model="baseform.promiseTimeLimitShow"
-                :disabled="isPromise !== '2'"
+                :disabled="isPromise != '2'"
                 placeholder="璇疯緭鍏ュ伐浣滄棩鏁�"
                 :min="1"
                 style="width: 70%"
@@ -138,36 +138,6 @@
           </a-form-model-item>
         </a-col>
       </a-row>
-      <a-row>
-        <a-col :span="8">
-          <a-form-model-item label="璺宠浆鍦板潃" props="netApplyUrl">
-            <a-input
-              v-model="baseform.netApplyUrl"
-              placeholder="璇疯緭鍏ヨ烦杞湴鍧€"
-            />
-          </a-form-model-item>
-        </a-col>
-        <a-col :span="8">
-          <a-form-model-item label="鍔炵悊娴佺▼鍥�" props="tid">
-            <YUpload
-              accept=".png,.jpg,.jpeg,.svg"
-              :limit="1"
-              v-model="baseform.tid"
-              listType="picture-card"
-            ></YUpload>
-          </a-form-model-item>
-        </a-col>
-
-        <a-col :span="8">
-          <a-form-model-item label="澶囨敞" props="remark">
-            <a-textarea
-              v-model="baseform.remark"
-              :auto-size="{ minRows: 5, maxRows: 5 }"
-              placeholder="璇疯緭鍏ュ娉�"
-            />
-          </a-form-model-item>
-        </a-col>
-      </a-row>
       <!-- 绐楀彛鍔炵悊 -->
       <div class="flex jcb aic">
         <div class="color_title">绐楀彛鍔炵悊</div>
@@ -249,7 +219,7 @@
               </a-select>
               <a-select
                 v-model="baseform.jointInfoShow"
-                :disabled="isLinked !== '2'"
+                :disabled="isLinked != '2'"
                 placeholder="璇烽€夋嫨鑱斿姙鏈烘瀯"
                 style="width: 70%"
               >
@@ -349,21 +319,16 @@ import {
   // addMatterToSite,
   getMatterInfo,
 } from "@/services/matter";
-import YUpload from "@/components/YUpload.vue";
-
 export default {
-  components: {
-    YUpload,
-  },
   data() {
     return {
       siteId: local.getLocal("siteId"), // 绔欑偣id
       loading: false,
       labelCol: { span: 5 },
       wrapperCol: { span: 19 },
-      isTimely: undefined,
-      isPromise: undefined,
-      isLinked: undefined,
+      isTimely: "2",
+      isPromise: "2",
+      isLinked: "1",
       onlineTypeItem: [], // 缃戝姙绫诲瀷閫夐」
       eventTypeShowItem: [], // 浜嬮」绫诲瀷閫夐」
       jointInfoShowItem: [], // 杩炲姙鏈烘瀯閫夐」
@@ -394,8 +359,6 @@ export default {
         operateSite: "", // 鍔炵悊鍦扮偣
         cousultingShow: "", //  鍜ㄨ鏂瑰紡
         superviseShow: "", // 鐩戠潱鎶曡瘔鏂瑰紡
-        tid: "", //鍔炵悊娴佺▼鍥�
-        remark: "", //澶囨敞
       },
       deptData: [], // 閮ㄩ棬鍒楄〃
       rules: {
@@ -431,11 +394,11 @@ export default {
       }
     },
   },
-  async created() {
-    await this.getDeptListData();
+  created() {
+    this.getDeptListData();
     if (this.$route.query.edit == 1) {
       let matterId = this.$route.query.matterId;
-      await this.getMatterInfo(matterId);
+      this.getMatterInfo(matterId);
     }
     if (!this.baseform.matterNo) {
       this.baseform.matterNo = this.$nanoid();
@@ -461,23 +424,20 @@ export default {
     async getMatterInfo(id) {
       let res = await getMatterInfo({ id });
       if (res.data.code === 1) {
-        this.baseform = { ...res.data.data };
-        this.baseform.promiseTimeLimitShow == ""
-          ? (this.isPromise = "1")
-          : this.baseform.promiseTimeLimitShow == 0 ||
-            this.baseform.promiseTimeLimitShow == "鍗冲姙"
-          ? (this.isPromise = "1")
-          : (this.isPromise = "2");
-        this.baseform.legalTimeLimitShow == ""
-          ? (this.isTimely = "1")
-          : this.baseform.legalTimeLimitShow == 0 ||
-            this.baseform.legalTimeLimitShow == "鍗冲姙"
-          ? (this.isTimely = "1")
-          : (this.isTimely = "2");
+        this.baseform = res.data.data;
         this.curDpt = {
           key: this.baseform.deptCode,
           label: this.baseform.deptName,
         };
+        if (this.baseform.legalTimeLimitShow) {
+          this.isTimely == "2";
+        }
+        if (this.baseform.promiseTimeLimitShow) {
+          this.isPromise == "2";
+        }
+        if (this.baseform.jointInfoShow) {
+          this.isLinked == "2";
+        }
       }
     },
     // 鍒囨崲閮ㄩ棬
diff --git a/base-manager-ui/admin/src/pages/basicset/addmatter/components/baseMessage.vue b/base-manager-ui/admin/src/pages/basicset/addmatter/components/baseMessage.vue
index 127878b583ae4d3c3a97408f972c05e0fbfc4253..ae2aed50de4efea306011fc4755032fc98ec1af3 100644
--- a/base-manager-ui/admin/src/pages/basicset/addmatter/components/baseMessage.vue
+++ b/base-manager-ui/admin/src/pages/basicset/addmatter/components/baseMessage.vue
@@ -148,7 +148,7 @@
                 </a-select>
                 <a-input-number
                   v-model="baseform.legalTimeLimitShow"
-                  :disabled="isTimely !== '2'"
+                  :disabled="isTimely != '2'"
                   placeholder="璇疯緭鍏ュ伐浣滄棩鏁�"
                   :min="1"
                   style="width: 70%"
@@ -172,7 +172,7 @@
                 </a-select>
                 <a-input-number
                   v-model="baseform.promiseTimeLimitShow"
-                  :disabled="isPromise !== '2'"
+                  :disabled="isPromise != '2'"
                   placeholder="璇疯緭鍏ュ伐浣滄棩鏁�"
                   :min="1"
                   style="width: 70%"
@@ -272,35 +272,6 @@
             </a-form-model-item>
           </a-col>
         </a-row>
-        <a-row>
-          <a-col :span="8">
-            <a-form-model-item label="璺宠浆鍦板潃" props="netApplyUrl">
-              <a-input
-                v-model="baseform.netApplyUrl"
-                placeholder="璇疯緭鍏ヨ烦杞湴鍧€"
-              />
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="8">
-            <a-form-model-item label="鍔炵悊娴佺▼鍥�" props="tid">
-              <YUpload
-                accept=".png,.jpg,.jpeg,.svg"
-                :limit="1"
-                v-model="baseform.tid"
-                listType="picture-card"
-              ></YUpload>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="8">
-            <a-form-model-item label="澶囨敞" props="remark">
-              <a-textarea
-                v-model="baseform.remark"
-                :auto-size="{ minRows: 5, maxRows: 5 }"
-                placeholder="璇疯緭鍏ュ娉�"
-              />
-            </a-form-model-item>
-          </a-col>
-        </a-row>
         <!-- 绐楀彛鍔炵悊 -->
         <div class="color_title mt">绐楀彛鍔炵悊</div>
         <a-row>
@@ -642,7 +613,7 @@
                 </a-select>
                 <a-select
                   v-model="baseform.jointInfoShow"
-                  :disabled="isLinked !== '2'"
+                  :disabled="isLinked != '2'"
                   placeholder="璇烽€夋嫨鑱斿姙鏈烘瀯"
                   style="width: 70%"
                 >
@@ -687,7 +658,7 @@
                   placeholder="璇疯緭鍏ユ暟瀛�"
                   style="width: 70%"
                   :min="1"
-                  :disabled="isCount !== '2'"
+                  :disabled="isCount != '2'"
                 ></a-input-number>
               </a-input-group>
             </a-form-model-item>
@@ -834,8 +805,6 @@
 </template>
 
 <script>
-import YUpload from "@/components/YUpload.vue";
-
 import {
   saveAddMatter,
   //  addMatterToSite
@@ -844,16 +813,13 @@ import { getDeptList } from "@/services/dept";
 import local from "@/utils/local";
 import { mapGetters } from "vuex";
 export default {
-  components: {
-    YUpload,
-  },
   data() {
     return {
       loading: false,
-      isTimely: undefined, // 鏄惁鍙婃椂鍔炵悊
-      isPromise: undefined, // 鎵胯鏄惁鍙婃椂鍔炵悊
-      isLinked: undefined, // 鏄惁鏈夎仈鍔炴満鏋�
-      isCount: undefined, // 鏄惁鏈夋暟閲忛檺鍒�
+      isTimely: "2", // 鏄惁鍙婃椂鍔炵悊
+      isPromise: "2", // 鎵胯鏄惁鍙婃椂鍔炵悊
+      isLinked: "1", // 鏄惁鏈夎仈鍔炴満鏋�
+      isCount: "2", // 鏄惁鏈夋暟閲忛檺鍒�
       deptData: [], // 閮ㄩ棬閫夐」鏁版嵁
       siteId: local.getLocal("siteId"), // 绔欑偣id
       baseform: {
@@ -915,9 +881,7 @@ export default {
         operateTime: "", // 鍔炵悊鏃堕棿
         operateSite: "", // 鍔炵悊鍦扮偣
         cousultingShow: "", //  鍜ㄨ鏂瑰紡
-        superviseShow: "", // 鐩戠潱鎶曡瘔鏂瑰紡,
-        tid: "", //鍔炵悊娴佺▼鍥�
-        remark: "", //澶囨敞
+        superviseShow: "", // 鐩戠潱鎶曡瘔鏂瑰紡
       },
       // 鍩虹淇℃伅鏍¢獙
       baseformRules: {
@@ -936,8 +900,9 @@ export default {
       },
     };
   },
-  async created() {
-    await this.getDeptListData();
+  created() {
+    this.mergeForm();
+    this.getDeptListData();
   },
   computed: {
     ...mapGetters("site", ["matterDict"]),
@@ -978,26 +943,18 @@ export default {
           };
           local.setLocal("matter", obj);
         }
-        this.baseform.promiseTimeLimitShow == ""
-          ? (this.isPromise = "1")
-          : this.baseform.promiseTimeLimitShow == 0 ||
-            this.baseform.promiseTimeLimitShow == "鍗冲姙"
-          ? (this.isPromise = "1")
-          : (this.isPromise = "2");
-        this.baseform.legalTimeLimitShow == ""
-          ? (this.isTimely = "1")
-          : this.baseform.legalTimeLimitShow == 0 ||
-            this.baseform.legalTimeLimitShow == "鍗冲姙"
-          ? (this.isTimely = "1")
-          : (this.isTimely = "2");
-        if (!this.baseform.deptCode && this.baseform.deptCode == "") {
-          let arr = [];
-          arr = this.deptData.filter((v) => v.name == this.baseform.deptName);
-          arr && arr.length > 0
-            ? (this.baseform.deptCode = arr[0].deptNumber)
-            : "";
+        if (this.baseform.legalTimeLimitShow) {
+          this.isTimely == "2";
+        }
+        if (this.baseform.promiseTimeLimitShow) {
+          this.isPromise == "2";
+        }
+        if (this.baseform.jointInfoShow) {
+          this.isLinked == "2";
+        }
+        if (this.baseform.numberLimit) {
+          this.isCount == "2";
         }
-        this.$forceUpdate(this.baseform);
       }
     },
     // 鑾峰彇閮ㄩ棬鍒楄〃
@@ -1006,9 +963,6 @@ export default {
       let { code, data } = res.data;
       if (code === 1) {
         this.deptData = data.data;
-        await this.mergeForm();
-      } else {
-        await this.mergeForm();
       }
     },
 
diff --git a/base-manager-ui/admin/src/pages/basicset/surface/bkbSkin/BkbSkin.vue b/base-manager-ui/admin/src/pages/basicset/surface/bkbSkin/BkbSkin.vue
new file mode 100644
index 0000000000000000000000000000000000000000..20de46a2efc0129043a9fde342be266846174af7
--- /dev/null
+++ b/base-manager-ui/admin/src/pages/basicset/surface/bkbSkin/BkbSkin.vue
@@ -0,0 +1,198 @@
+<template>
+  <div class="skin-box">
+    <!-- 鑳岄潬鑳� 1920*1080 -->
+    <div
+      :id="componentsId"
+      class="across-skin"
+      v-if="resolution === '1920x1080'"
+      :style="{
+        background: filterItem('1', 0),
+      }"
+    >
+      <div class="surface-preview-main">
+        <div class="skin-header">
+          <h1 class="skin-header-title" :style="{ color: filterItem('2', 0) }">
+            鑳岄潬鑳岃瘎浠蜂氦浜掔郴缁�
+          </h1>
+        </div>
+        <div class="skin-content">
+          <div class="skin-content-left">
+            <div class="flex left-top">
+              <div class="border"></div>
+              <div class="border"></div>
+            </div>
+            <div class="border left-bottom"></div>
+          </div>
+          <div class="skin-content-right border"></div>
+        </div>
+      </div>
+    </div>
+
+    <!-- 绌烘暟鎹樉绀� -->
+    <div class="empty flex aic jcc" v-else>
+      <a-empty
+        :image="require('../../../../assets/img/original.png')"
+        :image-style="{
+          height: '80px',
+        }"
+      >
+        <span slot="description"> <a href="#API">鏆傛棤鐨偆妯℃澘</a> </span>
+      </a-empty>
+    </div>
+  </div>
+</template>
+
+<script>
+import { unifyResolution } from "@/utils";
+import { filterItems } from "@/utils";
+import { mapGetters } from "vuex";
+export default {
+  props: {
+    // imgItem: {
+    //   type: Array,
+    //   required: true,
+    //   default: () => {
+    //     return [];
+    //   },
+    // },
+    skinFieldList: {
+      type: Array,
+      required: true,
+      default: () => {
+        return [];
+      },
+    },
+    imageResolution: {
+      required: true,
+      default: "",
+    },
+    componentsId: {
+      required: true,
+      type: String,
+    },
+  },
+  data() {
+    return {
+      api: process.env.VUE_APP_API_IMG_URL,
+    };
+  },
+  computed: {
+    ...mapGetters("site", ["imageResolutions"]),
+    resolution() {
+      let data = filterItems(this.imageResolution, this.imageResolutions);
+      return unifyResolution(data);
+    },
+  },
+  methods: {
+    // 杩囨护灞炴€х被鍨�
+    filterItem(type, index) {
+      let arr = this.skinFieldList.filter((v) => {
+        return v.remark == type;
+      });
+      if (arr.length) {
+        return this.filterValueType(arr[index]);
+      } else {
+        return "";
+      }
+    },
+    // 杩囨护灞炴€у€肩被鍨�
+    filterValueType(info = {}) {
+      let value = "";
+      if (info.fieldType !== "" && info.fieldType == "1" && info.fieldValue) {
+        value = info.fieldValue;
+      } else if (
+        info.fieldType !== "" &&
+        info.fieldType == "2" &&
+        info.fieldValue
+      ) {
+        value = `url(${this.api + info.fieldValue})`;
+      }
+      return value;
+    },
+    // 杩囨护瀵艰埅
+    filterNav(type) {
+      let arr = [];
+      arr = this.skinFieldList.filter((v) => {
+        return v.remark == type;
+      });
+      return arr;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.border {
+  border: 1px dashed #ececec;
+}
+.across-skin {
+  width: 1000px;
+  height: 562.5px;
+  color: #fff;
+  background-image: linear-gradient(#26c5ff, #2c66ff);
+  background-repeat: no-repeat !important;
+  background-position: center !important;
+  background-size: 100% 100% !important;
+  h1 {
+    color: #fff;
+    margin: 0px;
+  }
+  p {
+    display: flex;
+    flex-wrap: wrap;
+    margin: 0px;
+  }
+  .surface-preview-main {
+    width: 96%;
+    margin-left: 2%;
+    height: 100%;
+    display: flex;
+    flex-direction: column;
+    .skin-header {
+      display: flex;
+      height: 100px;
+      margin-bottom: 40px;
+      justify-content: center;
+      align-items: center;
+      .skin-header-title {
+        font-size: 22px;
+        font-weight: 600;
+        letter-spacing: 2px;
+      }
+    }
+    .skin-content {
+      flex: 1;
+      display: flex;
+      justify-content: flex-end;
+      width: 96%;
+      margin-left: 2%;
+      padding-bottom: 20px;
+      gap: 10px;
+      .skin-content-left {
+        flex: 1;
+        height: 100%;
+        display: flex;
+        flex-direction: column;
+        gap: 10px;
+        .left-top {
+          height: 60px;
+          display: flex;
+          gap: 10px;
+          div {
+            flex: 1;
+            height: 100%;
+          }
+        }
+        .left-bottom {
+          flex: 1;
+        }
+      }
+
+      .skin-content-right {
+        width: 30%;
+        height: 100%;
+      }
+    }
+  }
+}
+</style>
diff --git a/base-manager-ui/admin/src/pages/basicset/surface/components/ShowBox.vue b/base-manager-ui/admin/src/pages/basicset/surface/components/ShowBox.vue
index 933abf6bc23168c2a14008df071b44768a283cae..49a646719168bcbb0183707d950ea33eaacde3d1 100644
--- a/base-manager-ui/admin/src/pages/basicset/surface/components/ShowBox.vue
+++ b/base-manager-ui/admin/src/pages/basicset/surface/components/ShowBox.vue
@@ -57,6 +57,7 @@ import SelfService from "../selfservice/SelfService.vue";
 import DesSelfService from "../desSelfservice/DesSelfService.vue";
 import SignDevicekin from "../signdeviceskin/SignDeviceSkin.vue";
 import InfoDisSkin from "../infoDisSkin/InfoDisSkin.vue";
+import BkbSkin from "../bkbSkin/BkbSkin.vue";
 import DefaultShow from "../defaultshow/DefaultShow.vue";
 import { mapState, mapMutations } from "vuex";
 import { filterItems } from "@/utils";
@@ -73,6 +74,7 @@ const skinCompontens = {
   xxfbp: "InformationSkin",
   zmszzfwzd: "DesSelfService",
   xxgk: "InfoDisSkin",
+  bkb: "BkbSkin",
 };
 export default {
   components: {
@@ -88,6 +90,7 @@ export default {
     DesSelfService,
     SignDevicekin,
     InfoDisSkin,
+    BkbSkin,
     DefaultShow,
   },
   props: {},
diff --git a/base-manager-ui/admin/src/pages/basicset/surface/modal/AddSurface.vue b/base-manager-ui/admin/src/pages/basicset/surface/modal/AddSurface.vue
index 943805d8cd11d2bbb5ae0aa72520ac39e9618f1b..6ce9b9be064fc370c3b0d4fd7a6958a83b4e675c 100644
--- a/base-manager-ui/admin/src/pages/basicset/surface/modal/AddSurface.vue
+++ b/base-manager-ui/admin/src/pages/basicset/surface/modal/AddSurface.vue
@@ -196,6 +196,7 @@ import SelfService from "../selfservice/SelfService.vue";
 import DesSelfService from "../desSelfservice/DesSelfService.vue";
 import SignDevicekin from "../signdeviceskin/SignDeviceSkin.vue";
 import InfoDisSkin from "../infoDisSkin/InfoDisSkin.vue";
+import BkbSkin from "../bkbSkin/BkbSkin.vue";
 import DefaultShow from "../defaultshow/DefaultShow.vue";
 import { uploadFile, skinSave, getTemplateList } from "@/services/surface";
 import html2canvas from "html2canvas";
@@ -214,6 +215,7 @@ const skinCompontens = {
   xxfbp: "InformationSkin",
   zmszzfwzd: "DesSelfService",
   xxgk: "InfoDisSkin",
+  bkb: "BkbSkin",
 };
 export default {
   components: {
@@ -229,6 +231,7 @@ export default {
     DesSelfService,
     SignDevicekin,
     InfoDisSkin,
+    BkbSkin,
     DefaultShow,
   },
   props: {