diff --git a/develop/@gms/gms-plugin-billexpand/src/components-control/news-detail.vue b/develop/@gms/gms-plugin-billexpand/src/components-control/news-detail.vue
index 5cef786..db2c447 100644
--- a/develop/@gms/gms-plugin-billexpand/src/components-control/news-detail.vue
+++ b/develop/@gms/gms-plugin-billexpand/src/components-control/news-detail.vue
@@ -2,7 +2,7 @@
   <div class="news-container">
     <div class="news-detail">
       <div class="detail-title">{{title}}</div>
-      <div class="detail-description">摘要:{{description}} &nbsp&nbsp&nbsp&nbsp 时间:{{time}}</div>
+      <div class="detail-description">摘要:{{description}} &nbsp;&nbsp;&nbsp;&nbsp; 时间:{{time}}</div>
       <div class="detail-content" v-html="content"></div>
     </div>
   </div>
diff --git a/develop/@gms/gms-plugin-billexpand/src/control/IntroduceInputControl.vue b/develop/@gms/gms-plugin-billexpand/src/control/IntroduceInputControl.vue
index ff9e0da..c9bb6f6 100644
--- a/develop/@gms/gms-plugin-billexpand/src/control/IntroduceInputControl.vue
+++ b/develop/@gms/gms-plugin-billexpand/src/control/IntroduceInputControl.vue
@@ -159,7 +159,6 @@ export default {
         });
       window.open(routeData.href, "_blank");
       });
-      
     },
     executeAction() {
       this.context.bill.executeAction(this.button.config.action);
diff --git a/develop/@gms/gms-plugin-billexpand/src/control/util/dynamic-from-common.less b/develop/@gms/gms-plugin-billexpand/src/control/util/dynamic-from-common.less
new file mode 100644
index 0000000..fc0138e
--- /dev/null
+++ b/develop/@gms/gms-plugin-billexpand/src/control/util/dynamic-from-common.less
@@ -0,0 +1,25 @@
+.input-height{
+  /deep/.ivu-input-default{
+      height: 100%;
+  }
+} 
+.input-center{
+  /deep/.ivu-input-default{
+      text-align: center;
+  }
+}
+.input-left{
+  /deep/.ivu-input-default{
+      text-align: left;
+  }
+}
+.input-right{
+  /deep/.ivu-input-default{
+      text-align: right;
+  }
+}
+.input-control-wrapper{
+display: inline-block;
+width: 100%;
+position: relative;
+}
\ No newline at end of file
diff --git a/develop/@gms/gms-plugin-billexpand/src/control/vxeTableExpand/SubjectControl.vue b/develop/@gms/gms-plugin-billexpand/src/control/vxeTableExpand/SubjectControl.vue
new file mode 100644
index 0000000..83966aa
--- /dev/null
+++ b/develop/@gms/gms-plugin-billexpand/src/control/vxeTableExpand/SubjectControl.vue
@@ -0,0 +1,96 @@
+<template>
+  <div class="input-control-wrapper">
+    <!-- <SubjectModalTree
+      v-if="!isContent && controlDisplay"
+      :systemFlag="systemFlag"
+      :nodeKey="nodeKey"
+      :multiple="define.config.multiple"
+      :placeholder="define.config.placeholder"
+      :entryTitle="define.config.title"
+      :modalName="define.config.title"
+      :onlyChooseLeaf="define.config.isLeaf"
+      :defaultExpandAll="defaultExpandAll"
+      :lazy="lazy"
+      :customListFunc="customListFunc"
+      :customTreeFunc="customTreeFunc"
+      :value="value"
+      @on-subject-selected="subjectSelectedHandler"
+    />
+    <div v-if="isContent">
+      {{ getValue() }}
+    </div> -->
+  </div>
+</template>
+<script>
+import input from "../util/bc_input.js";
+/* import { SubjectModalTree } from "@yhs/components"; */
+export default {
+  mixins: [input],
+  /* components: {
+    SubjectModalTree,
+  }, */
+  props: {
+    rowIndex: {
+      type: Number,
+      default: -1,
+    },
+    isVxe: {},
+  },
+  data() {
+    return {
+      systemFlag: "finance",
+      nodeKey: "code",
+      multiple: false,
+      defaultExpandAll: false,
+      lazy: false,
+      value: "",
+    };
+  },
+  methods: {
+    stopPropagation(event) {
+      event.stopPropagation()
+    },
+    subjectSelectedHandler(selectedObj) {
+      console.log(selectedObj)
+      const code = selectedObj.code;
+      const name = selectedObj.name || selectedObj.title
+      let nv = code + " " + name;
+      this.value = code;
+      this.setDataObjectValue(nv);
+    },
+    customListFunc(callback) {
+      GMS.$http
+        .post("/rbc/acct-sys/subject/list", { pagination: false })
+        .then((res) => {
+          console.log(res);
+          let data = res.data.data.rows;
+          callback(data);
+        });
+    },
+    customTreeFunc(callback) {
+      GMS.$http
+        .post("/rbc/acct-sys/subject/tree", { pagination: false })
+        .then((res) => {
+          console.log(res);
+          let data = res.data.data;
+          callback(data);
+        });
+    },
+    getSubjectDataList() {},
+    getSubjectDataTree() {},
+  },
+};
+</script>
+<style lang="less" scoped>
+@import "../util/dynamic-from-common.less";
+.input-control-wrapper {
+  /deep/ .ivu-input-suffix {
+    z-index: 999;
+  }
+  /deep/ .ivu-input-suffix i {
+    position: relative;
+    top: 50%;
+    transform: translate(0, -50%);
+  }
+}
+</style>
\ No newline at end of file
diff --git a/develop/@gms/gms-plugin-billexpand/src/control/vxeTableExpand/VxeSubjectControl.js b/develop/@gms/gms-plugin-billexpand/src/control/vxeTableExpand/VxeSubjectControl.js
new file mode 100644
index 0000000..1802f9e
--- /dev/null
+++ b/develop/@gms/gms-plugin-billexpand/src/control/vxeTableExpand/VxeSubjectControl.js
@@ -0,0 +1,29 @@
+import SubjectControl from './SubjectControl.vue'
+export default {
+    renderEdit:(h, renderOpts, params,hide)=>{
+        const {
+            row,
+            column,
+            rowIndex
+        } = params;
+        let props = column.editRender.props; 
+        let define = props.define;
+        let context = props.context;
+        return [
+            h(SubjectControl, {
+                class:"InputControl",
+                attrs:{
+                    id:props.id
+                },
+                props: {
+                    define:define,
+                    context:context,
+                    rowIndex:rowIndex,
+                    isVxe:{width:props.colItem.width,height:props.colItem.height}
+                },
+                on: {},
+            })
+        ]
+    }
+}
+
diff --git a/develop/@gms/gms-plugin-billexpand/src/mcon.js b/develop/@gms/gms-plugin-billexpand/src/mcon.js
index 3b8cb62..fc5af4b 100644
--- a/develop/@gms/gms-plugin-billexpand/src/mcon.js
+++ b/develop/@gms/gms-plugin-billexpand/src/mcon.js
@@ -78,6 +78,7 @@ import userSelectControl from './control/userSelect.vue'
 import integerControl from './control/integerControl.vue'
 import IntroduceInputControl from './control/IntroduceInputControl.vue'
 import InputModalControl from './control/InputModalControl.vue'
+import VxeSubjectControl from './control/vxeTableExpand/VxeSubjectControl.js'
 //formula
 
 import GeneralImportFile from './formula/GeneralImportFile.js';
@@ -248,7 +249,8 @@ export default {
         userSelectControl,
         integerControl,
         IntroduceInputControl,
-        InputModalControl
+        InputModalControl,
+        VxeSubjectControl
     },
     formula: {
         SubTableSetBaseData,
diff --git a/develop/@gms/gms-plugin-billexpand/src/plugin.js b/develop/@gms/gms-plugin-billexpand/src/plugin.js
index 5002f4f..e6dd64a 100644
--- a/develop/@gms/gms-plugin-billexpand/src/plugin.js
+++ b/develop/@gms/gms-plugin-billexpand/src/plugin.js
@@ -4,6 +4,11 @@ import '@rbc/icon/iconfont'
 import '@rbc/icon/iconfont.css'
 import '@rbc/icon/icon.css'
 import './styles/common/normalize.less'
+import '@yhs/icon/iconfont.css'
+import '@yhs/icon/iconfont.js'
+import '@yhs/icon/icon.css'
+
+
 export default {
   install: function(){
     GMS.getContext().getCollector().addElements(mcon);  // 收集所有配置文件