Browse Source

页面更新

sr 4 years ago
parent
commit
4b3f2db708

+ 12 - 0
boman-api/boman-domain/src/main/java/com.boman.domain/GenTableColumn.java

@@ -150,6 +150,11 @@ public class GenTableColumn extends BaseEntity
      */
     private String regular;
 
+    /**
+     * readonly
+     */
+    private boolean readonly;
+
     /**
      * 查询时:{"fkTableName":"外键表的表名", "fkColumnName":"关联外键表的列名", "dkColumnName":"关联表需要展示的字段名"}
      * 根据列名获取关联表字段的值和名称{"name":"12", "value":"dept_id"}
@@ -601,4 +606,11 @@ public class GenTableColumn extends BaseEntity
         this.columnValue = columnValue;
     }
 
+    public boolean isReadonly() {
+        return readonly;
+    }
+
+    public void setReadonly(boolean readonly) {
+        this.readonly = readonly;
+    }
 }

+ 10 - 0
boman-api/boman-domain/src/main/java/com.boman.domain/constant/SubmitConstant.java

@@ -60,4 +60,14 @@ public class SubmitConstant {
      * 批量提交的时候,状态压根就不符合
      */
     public static final String NOT_ALLOWED = "NOT_ALLOWED";
+
+    /**
+     * STATUS
+     */
+    public static final String STATUS = "status";
+
+    /**
+     * READ_ONLY
+     */
+    public static final boolean READONLY = true;
 }

+ 10 - 4
boman-web-core/src/main/java/com/boman/web/core/service/TableServiceCmdService.java

@@ -358,8 +358,11 @@ public class TableServiceCmdService {
                 if (isNotEmpty(dictType) && jsonObject.containsKey(column.getColumnName())) {
                     String dictLabel = null;
                     try {
-                        dictLabel = remoteDictDataService.selectDictLabel(dictType, jsonObject.getString(column.getColumnName()));
-                        jsonObject.put(column.getColumnName(), dictLabel);
+                        List<SysDictData> sysDictData = listSysDictDataByType(dictType);
+                        jsonObject.put("sysDictData", sysDictData);
+//                        dictLabel = remoteDictDataService.selectDictLabel(dictType, jsonObject.getString(column.getColumnName()));
+//                        jsonObject.put(column.getColumnName(), dictLabel);
+//                        column.setColumnValue(jsonObject.get(column.getColumnName()));
                     } catch (Exception e) {
                         e.printStackTrace();
                     }
@@ -400,8 +403,9 @@ public class TableServiceCmdService {
             List<GenTableColumn> children = Lists.newArrayListWithCapacity(16);
             for (GenTableColumn column : columns) {
                 if (hrColumn.getId().equals(column.getHrParentId())) {
+                    String columnName = column.getColumnName();
                     // handler column
-                    if (json.containsKey(column.getColumnName())) {
+                    if (json.containsKey(columnName)) {
                         handlerSysDictData(Collections.singletonList(json), Collections.singletonList(column));
                         handlerDate(Collections.singletonList(json), Collections.singletonList(column));
                         handlerForeignKey(Collections.singletonList(json), Collections.singletonList(column));
@@ -410,7 +414,9 @@ public class TableServiceCmdService {
                             handlerAnnex(Collections.singletonList(json), Collections.singletonList(column));
                         }
 
-                        column.setColumnValue(json.get(column.getColumnName()));
+                        column.setReadonly(SubmitConstant.STATUS.equals(columnName));
+                        column.setColumnValue(json.get(columnName));
+                        column.setSysDictData((List<SysDictData>)json.get("sysDictData"));
                     }
 
                     children.add(column);

+ 20 - 12
ruoyi-ui/src/components/DynamicForms/index.vue

@@ -2,56 +2,56 @@
   <el-form-item :label="formConfig.columnComment" style="display: inline-block;" :prop="formConfig.columnName">
     <!-- 输入框 -->
     <el-input v-if="formConfig.htmlType == 'input'" v-model="config[formConfig.columnName]" :placeholder="'请输入'+formConfig.columnComment"
-      clearable @keyup.enter.native="handleQuery" />
+      clearable @keyup.enter.native="handleQuery"  :disabled="formConfig.disabshow" />
     <!-- 多行输入框 -->
     <el-input v-if="formConfig.htmlType == 'textarea'" type="textarea" v-model="config[formConfig.columnName]"
-      :placeholder="'请输入'+formConfig.columnComment" clearable @keyup.enter.native="handleQuery" />
+      :placeholder="'请输入'+formConfig.columnComment" clearable @keyup.enter.native="handleQuery" :disabled="formConfig.disabshow"/>
     <!-- 下拉框 -->
     <el-select v-model="config[formConfig.columnName]" v-if="formConfig.htmlType == 'select'&&(!formConfig.fkInfo)"
-      filterable :placeholder="'请输入'+formConfig.columnComment">
+      filterable :placeholder="'请输入'+formConfig.columnComment" :disabled="formConfig.disabshow">
       <el-option v-for="itemChild in formConfig.sysDictData" :key="itemChild.dictValue" :label="itemChild.dictLabel"
         :value="itemChild.dictValue">
       </el-option>
     </el-select>
     <!-- 下拉框搜索 -->
-    <el-select v-model="config[formConfig.columnName]" v-if="formConfig.htmlType == 'select'&&(formConfig.fkInfo )"
+    <el-select :disabled="formConfig.disabshow" v-model="config[formConfig.columnName]" v-if="formConfig.htmlType == 'select'&&(formConfig.fkInfo)"
       filterable remote :remote-method="remoteMethod" :loading="loading" :placeholder="'请输入'+formConfig.columnComment">
       <el-option v-for="itemChild in filterList" :key="itemChild.table_id" :label="itemChild.table_name" :value="itemChild.table_id">
       </el-option>
     </el-select>
     <!-- 复选框 -->
-    <el-checkbox-group v-model="config" v-if="formConfig.htmlType == 'checkbox'">
+    <el-checkbox-group :disabled="formConfig.disabshow" v-model="config" v-if="formConfig.htmlType == 'checkbox'">
       <el-checkbox @change="handleCheckedCitiesChange" v-for="itemChild in formConfig.sysDictData" :label="itemChild.dictValue"
         :key="itemChild.dictLabel">
         {{itemChild.dictLabel}}
       </el-checkbox>
     </el-checkbox-group>
     <!-- 单选框 -->
-    <el-radio-group v-model="config[formConfig.columnName]" v-if="formConfig.htmlType == 'radio'">
+    <el-radio-group :disabled="formConfig.disabshow" v-model="config[formConfig.columnName]" v-if="formConfig.htmlType == 'radio'">
       <el-radio v-for="itemChild in formConfig.sysDictData" :key="itemChild.dictValue" :label="itemChild.dictValue">{{itemChild.dictLabel}}</el-radio>
     </el-radio-group>
     <!-- 时间控件 -->
-    <el-date-picker v-model="config[formConfig.columnName]" v-if="formConfig.htmlType == 'datetime'" type="date"
+    <el-date-picker :disabled="formConfig.disabshow" v-model="config[formConfig.columnName]" v-if="formConfig.htmlType == 'datetime'" type="date"
       :placeholder="'请输入'+formConfig.columnComment">
     </el-date-picker>
     <!-- 上传图片 -->
-    <el-upload v-if="formConfig.htmlType == 'imageUpload'" :headers="{Authorization: 'Bearer ' + getToken()}" :action="process + '/boman-file/upload'"
+    <el-upload :disabled="formConfig.disabshow" v-if="formConfig.htmlType == 'imageUpload'" :headers="{Authorization: 'Bearer ' + getToken()}" :action="process + '/boman-file/upload'"
       :file-list="config" list-type="picture-card" :on-preview="handlePictureCardPreview" :on-success="upImageFn"
       :on-remove="reseImage">
       <i class="el-icon-plus"></i>
     </el-upload>
-    <el-dialog :visible.sync="dialogVisible" v-if="formConfig.htmlType == 'imageUpload'">
+    <el-dialog :disabled="formConfig.disabshow" :visible.sync="dialogVisible" v-if="formConfig.htmlType == 'imageUpload'">
       <img width="100%" :src="dialogImageUrl" alt="">
     </el-dialog>
     <!-- 上传文件 -->
-    <el-upload class="upload-demo" :headers="{Authorization: 'Bearer ' + getToken()}" v-if="formConfig.htmlType == 'fileUpload'"
+    <el-upload :disabled="formConfig.disabshow" class="upload-demo" :headers="{Authorization: 'Bearer ' + getToken()}" v-if="formConfig.htmlType == 'fileUpload'"
       :action="process + '/boman-file/upload'" :on-change="handleChange" :on-success="upImageFn" :on-remove="reseImage"
       :file-list="config">
       <el-button size="small" type="primary">点击上传</el-button>
       <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
     </el-upload>
     <!-- 富文本 -->
-    <editor v-model="config[formConfig.columnName]" v-if="formConfig.htmlType == 'editor'" :min-height="192" />
+    <editor  :disabled="formConfig.disabshow" v-model="config[formConfig.columnName]" v-if="formConfig.htmlType == 'editor'" :min-height="192" />
   </el-form-item>
 </template>
 
@@ -100,7 +100,15 @@
       },
     },
     created() {
-      this.config = {}
+      this.config = {}
+      // console.log(this.formConfig.mask.slice(3,4),876454)
+      if(this.formConfig.readonly == true){
+        this.formConfig.disabshow = true
+      }else if(this.formConfig.mask.slice(3,4) == '0'){
+        this.formConfig.disabshow = true
+      }else{
+        this.formConfig.disabshow = false
+      }
       this.init()
     },
     watch: {

+ 1 - 0
ruoyi-ui/src/components/todoProcess/index.vue

@@ -11,6 +11,7 @@
       :buttonType="false"
       @formChange="formChange"
     ></FormItemComponent>
+
     <StandardTable
       class="table"
       :currentPage="searchData.page"

+ 3 - 2
ruoyi-ui/src/views/system/editing/index.vue

@@ -3,6 +3,7 @@
     <!-- 头部 -->
     <div class="eniting_header">
       <!-- <p class="p">表编辑</p> -->
+      <p></p>
       <div class="ppl">
         <p v-for="(item,index) in tabldie" :key="index" @click="enditTab(index)">
           <img src="../../../assets/images/icon_tbtab_normal.png" alt="" class="index_headerImg" v-if="num !== index">
@@ -46,6 +47,7 @@
   } from '@/api/system/table.js';
   export default {
     name: "index",
+    inject: ['reload'],
     data() {
       return {
         activeNames: ['1'],
@@ -208,8 +210,7 @@
           if (this.tabldie.length !== 0) {
             this.init()
           } else {
-            this.msgSuccess("暂无数据");
-
+            this.msgSuccess("暂无tab数据");
             this.$router.go(-1)
           }
           // this.msgSuccess("反提交成功");

+ 15 - 4
ruoyi-ui/src/views/system/surface/index.vue

@@ -20,14 +20,19 @@
     <div class="table_nav">
       <el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55" align="center" />
-        <el-table-column :label="item.columnComment" align="center" :prop="item.columnName" v-for="(item,index) in tabData"
-          :key="index" />
+        <template v-for="(item, index) in tabData">
+          <el-table-column :label="item.columnComment" align="center" :prop="item.columnName" :key="index">
+            <template slot-scope="scope">
+              <img class="img_icon" :src="JSON.parse(scope.row[scope.column.property])[0].url" alt="" v-if="item.htmlType=='imageUpload'">
+              <span v-else>{{ scope.row[scope.column.property] }}</span>
+            </template>
+          </el-table-column>
+        </template>
       </el-table>
       <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
         @pagination="getList" />
     </div>
   </div>
-
 </template>
 
 <script>
@@ -287,7 +292,13 @@
 </script>
 
 
-<style lang="scss">
+<style lang="scss">
+  .img_icon{
+    width: 120px;
+    height: 120px;
+    cursor: pointer;
+    object-fit: cover;
+  }
   .table_header {
     .el-divider--horizontal {
       margin-top: 16px;

+ 1 - 1
ruoyi-ui/src/views/system/table/index.vue

@@ -15,7 +15,7 @@
 
             <el-row>
               <el-col :span="24" :key="index">
-                <dynamic-forms @modelFn="modelFn" :ref="items.columnName" @inputs="changeFn" :formConfig="items" v-for="(items,indexs) in item.hrChildren"
+                <dynamic-forms @modelFn="modelFn" :ref="items.columnName" :config="queryParams" @inputs="changeFn" :formConfig="items" v-for="(items,indexs) in item.hrChildren"
                   :key='indexs' />
               </el-col>
             </el-row>

+ 2 - 1
ruoyi-ui/src/views/tool/gen/editTable.vue

@@ -589,7 +589,8 @@
         // 获取表详细信息
         getGenTable(tableId).then(res => {
           this.cloumns = res.data.rows;
-          this.info = res.data.info;
+          this.info = res.data.info;
+          console.log(this.info,33456)
           this.tables = res.data.tables;
         });
         //查询数据库sql