3 Commity b06614e16d ... ff8c855f3b

Autor SHA1 Wiadomość Data
  yangfan ff8c855f3b Merge remote-tracking branch 'origin/1.2.2' into 1.2.2 3 miesięcy temu
  yangfan 5c53324540 色阶功能完善 3 miesięcy temu
  yangfan e535dfc372 优化新建表达时候,数据管理不出现 3 miesięcy temu

+ 1 - 1
public/uploadFile.html

@@ -6,7 +6,7 @@
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
   <meta name="renderer" content="webkit">
   <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
-  <title>巨一数字协同平台</title>
+  <title>图片上传</title>
   <script src="cdn/sdk/sdk.js"></script>
   <link rel="stylesheet" href="cdn/sdk/sdk.css">
   <link rel="stylesheet" href="cdn/sdk/iconfont.css">

+ 54 - 27
src/components/ColumnDesign/scene.vue

@@ -91,12 +91,12 @@
             <el-checkbox v-model="scope.row.visible" @change="visibleCheckChange(scope)" />
           </template>
         </vxe-column>
-        <vxe-column field="visible" title="移动端显示" width="90">
-          <template #header> <vxe-checkbox v-model="mobileVisibleCheck" size="mini">移动端显示</vxe-checkbox></template>
-          <template slot-scope="scope">
-            <el-checkbox v-model="scope.row.mobileVisible" />
-          </template>
-        </vxe-column>
+        <!--        <vxe-column field="visible" title="移动端显示" width="90">-->
+        <!--          <template #header> <vxe-checkbox v-model="mobileVisibleCheck" size="mini">移动端显示</vxe-checkbox></template>-->
+        <!--          <template slot-scope="scope">-->
+        <!--            <el-checkbox v-model="scope.row.mobileVisible" />-->
+        <!--          </template>-->
+        <!--        </vxe-column>-->
         <vxe-column field="sortable" title="排序" width="90">
           <template #header> <vxe-checkbox v-model="sortCheck" size="mini">排序</vxe-checkbox></template>
           <template slot-scope="scope">
@@ -115,27 +115,34 @@
             </el-select>
           </template>
         </vxe-column>
-        <!--        <vxe-column field="width" title="宽度">-->
-        <!--          <template slot-scope="scope">-->
-        <!--            <el-input-number size="mini" v-model="scope.row.width" placeholder="宽度" :min="0" :precision="0" controls-position="right" />-->
-        <!--            <div>-->
-        <!--              <el-checkbox v-model="scope.row.widthAuto">自适应</el-checkbox>-->
-        <!--            </div>-->
-        <!--          </template>-->
-        <!--        </vxe-column>-->
-        <!--        <vxe-column title="高级设置">-->
-        <!--          <template slot-scope="scope">-->
-        <!--            <el-popover placement="left" title="色阶设置" width="200" trigger="click">-->
-        <!--              <el-form size="mini">-->
-        <!--                <el-form-item label="是否开启">-->
-        <!--                  <el-switch v-model="scope.row.colorScale.isColorShow"></el-switch>-->
-        <!--                </el-form-item>-->
-        <!--                <template v-if="scope.row.colorScale.isColorShow"> </template>-->
-        <!--              </el-form>-->
-        <!--              <el-button slot="reference">色阶设置</el-button>-->
-        <!--            </el-popover>-->
-        <!--          </template>-->
-        <!--        </vxe-column>-->
+        <vxe-column field="width" title="宽度">
+          <template slot-scope="scope">
+            <el-input-number size="mini" v-model="scope.row.width" placeholder="宽度" :min="0" :precision="0" controls-position="right" />
+            <div>
+              <el-checkbox v-model="scope.row.widthAuto">自适应</el-checkbox>
+            </div>
+          </template>
+        </vxe-column>
+        <vxe-column title="高级设置">
+          <template slot-scope="scope">
+            <el-popover placement="left" title="色阶设置" width="500" trigger="click">
+              <el-form size="mini">
+                <el-form-item label="是否开启">
+                  <el-switch v-model="scope.row.colorScale.isColorShow"></el-switch>
+                </el-form-item>
+                <template v-if="scope.row.colorScale.isColorShow">
+                  <div class="flex" style="margin-bottom: 10px; gap: 10px" v-for="(item, index) in scope.row.colorScale.colorArr">
+                    <el-input v-model="item.text"></el-input>
+                    <el-color-picker v-model="item.color" show-alpha :predefine="predefineColors"> </el-color-picker>
+                    <el-button size="mini" type="text" @click="delColorArr(scope.row.colorScale.colorArr, index)">X</el-button>
+                  </div>
+                  <el-button size="mini" @click="addColorArr(scope.row.colorScale)">新增</el-button>
+                </template>
+              </el-form>
+              <el-button slot="reference">色阶设置</el-button>
+            </el-popover>
+          </template>
+        </vxe-column>
         <!--          <vxe-column field="width" title="关联表单">-->
         <!--            <template slot-scope="{ row, rowIndex }">-->
         <!--              <el-input :value="row.config.associatedFrom ? row.config.associatedFrom.fullName : ''" @focus="focusEvent(row, rowIndex)" suffix-icon="vxe-icon-flow-branch" placeholder="请选择"> </el-input>-->
@@ -370,6 +377,26 @@ export default {
     visibleCheckChange(row) {
       row.mobileVisible = row.visible
       console.log(row)
+    },
+    addColorArr(item) {
+      let colorArr = item.colorArr || []
+      if (colorArr.length < 1) {
+        this.predefineColors.forEach((item) => {
+          colorArr.push({
+            text: '',
+            color: item
+          })
+        })
+      } else {
+        colorArr.push({
+          text: '',
+          color: ''
+        })
+      }
+      this.$set(item, 'colorArr', colorArr)
+    },
+    delColorArr(item, index) {
+      item.splice(index, 1)
     }
   }
 }

+ 12 - 3
src/components/Generator/index/RightComponents/UploadFz.vue

@@ -44,9 +44,18 @@
     <el-form-item label="是否必填">
       <el-switch v-model="activeData.__config__.required" />
     </el-form-item>
-    <!-- <el-form-item label="显示标签">
-      <el-switch v-model="activeData.__config__.showLabel" />
-    </el-form-item> -->
+    <el-form-item label="显示水印">
+      <el-switch v-model="activeData.watermark" />
+    </el-form-item>
+    <template v-if="activeData.watermark">
+      <el-form-item label="水印文字">
+        <el-input type="text" v-model="activeData.watermarkText" placeholder="请输入水印文字" />
+        <div style="font-size: 12px">可插入变量:用户名:$用户名</div>
+      </el-form-item>
+      <el-form-item label="允许下载">
+        <el-switch v-model="activeData.watermark" />
+      </el-form-item>
+    </template>
   </el-row>
 </template>
 <script>

+ 0 - 2
src/components/YangForm.vue

@@ -23,7 +23,6 @@ export default {
 import { ref, useAttrs } from 'vue'
 import AmisSdk from '@/components/AmisSdk.vue'
 const attrs = useAttrs()
-console.log(attrs)
 const props = defineProps({
   modelValue: null,
   optionType: {
@@ -31,7 +30,6 @@ const props = defineProps({
     default: 'input'
   }
 })
-console.log(props)
 const predefineColors = ref([
   '#ff4500',
   '#ff8c00',

+ 41 - 25
src/views/basic/dynamicModel/list/index.vue

@@ -159,7 +159,7 @@
             <!--            </el-button>-->
           </template>
           <template #tag="{ row, column }">
-            <el-tag :style="`color:#fff;background-color: ${getColor(row[column.property])}`">
+            <el-tag :style="`color:#fff;background-color: ${getColor(row[column.property], row, column)}`">
               {{ row[column.property] }}
             </el-tag>
           </template>
@@ -564,7 +564,8 @@
           :cardInfo="columnData.cardTypeStyle"
           :btnList="columnData.columnBtnsList"
           :cardData="cardData"
-          :config="config" :columnDict="columnDict"
+          :config="config"
+          :columnDict="columnDict"
         ></CardTemplate>
         <div class="pager" style="position: absolute; bottom: 10px; right: 20px; z-index: 99; width: 100%">
           <vxe-pager
@@ -813,6 +814,7 @@ import Scene from '@/components/ColumnDesign/scene.vue'
 import authGroupSelector from '@/views/dataset/auth-group-selector.vue'
 import { noSearchList, useDateList, useInputList } from '@/components/Generator/generator/comConfig'
 import { getDrawingList } from '@/components/Generator/utils/db'
+import { getToken } from '@/utils/auth'
 const columnList = {}
 export default {
   name: 'dynamicModel',
@@ -2476,6 +2478,7 @@ export default {
         if (this.config?.visualdevCustomise?.fromJson) {
           customWidth = JSON.parse(customWidth)
         }
+        this.colorScale = {}
         const columnHeader = async (data, dbLinkId) => {
           let comName = {}
           let compoentConfig = {}
@@ -2547,6 +2550,8 @@ export default {
               data.slots.default = 'relationDefault'
             }
             if (find?.colorScale?.isColorShow) {
+              console.log(data)
+              this.colorScale[data.field] = find.colorScale
               data.slots.default = 'tag'
             }
             data.editRender = {
@@ -3479,26 +3484,32 @@ export default {
         })
     },
     imgOpenClick(url) {
-      if (!url) return
-      const ImgUrl = process.env.NODE_ENV === 'development' ? this.define.comUrl : document.location.origin;
-      window.open(ImgUrl + '/' + url)
-      // let Base64 = require('js-base64').Base64
-      // // 获取当前时间的时间戳
-      // let currentTimestamp = Date.now()
-      // // 创建一个新的Date对象,并设置为当前时间加上一小时
-      // let oneHourLater = new Date(currentTimestamp)
-      // oneHourLater.setHours(oneHourLater.getHours() + 1)
-      // // 获取一小时后的时间戳
-      // let oneHourTimestamp = oneHourLater.getTime()
-      // let obj = {
-      //   token: 'bearer ' + getToken(),
-      //   time: oneHourTimestamp,
-      //   env: document.location.origin
-      // }
-      // let objJson = Base64.encode(JSON.stringify(obj))
-      // let upUrl = Base64.encode(document.location.origin + '/' + url)
-      // let str = `/fileview/onlinePreview?url=${upUrl}&json=${objJson}`
-      // window.open(str, '_blank')
+      console.log(url)
+      let ImgUrl = ''
+      if (process.env.NODE_ENV === 'development') {
+        ImgUrl = this.define.comUrl
+      } else {
+        ImgUrl = document.location.origin
+      }
+      // window.open(ImgUrl + '/' + url)
+      let Base64 = require('js-base64').Base64
+      // 获取当前时间的时间戳
+      let currentTimestamp = Date.now()
+      // 创建一个新的Date对象,并设置为当前时间加上一小时
+      let oneHourLater = new Date(currentTimestamp)
+      oneHourLater.setHours(oneHourLater.getHours() + 1)
+      // 获取一小时后的时间戳
+      let oneHourTimestamp = oneHourLater.getTime()
+      let obj = {
+        token: 'bearer ' + getToken(),
+        time: oneHourTimestamp,
+        env: ImgUrl
+      }
+      console.log(obj)
+      let objJson = Base64.encode(JSON.stringify(obj))
+      let upUrl = Base64.encode(ImgUrl + '/' + url)
+      let str = `${ImgUrl}/fileview/onlinePreview?url=${upUrl}&json=${objJson}`
+      window.open(str, '_blank')
     },
     formFlowSubmit(row) {
       let jsonData = this.getFlowJsonData(row)
@@ -3935,8 +3946,7 @@ export default {
         .then(() => {
           sceneDelete({
             id: item.id
-          }).then((res) => {
-          })
+          }).then((res) => {})
           this.$message({
             type: 'success',
             message: '删除成功!'
@@ -3946,10 +3956,16 @@ export default {
         .catch(() => {})
     },
     // 随机颜色
-    getColor(field) {
+    getColor(field, row, column) {
       if (columnList[field]) {
         return columnList[field]
       } else {
+        if (this.colorScale[column.field]) {
+          const text = this.colorScale[column.field].colorArr.map((v) => v.text)
+          if (text.includes(field)) {
+            return this.colorScale[column.field].colorArr.find((v) => v.text === field).color
+          }
+        }
         const r = Math.floor(Math.random() * 128) + 64 // 64至191之间,偏向于深红色
         const g = Math.floor(Math.random() * 128) + 64 // 64至191之间,偏向于深绿色
         const b = Math.floor(Math.random() * 128) + 64 // 64至191之间,偏向于深蓝色