Jelajahi Sumber

图表分析的图形配置的修改

zhuliu 1 tahun lalu
induk
melakukan
2fde845d8d

+ 1 - 1
src/utils/chart.js

@@ -171,7 +171,7 @@ export const getSourceName = (fieldId, expandId, num) => {
   // if (fieldId === 27 && expandId === 15) {
   //   return '每5年授权'
   // }
-  const field = Store.getters.patentField.find(item => item.id === fieldId)
+  const field = Store.getters.patentField.find(item => item.value === fieldId.field)
   if (!field) {
     return ''
   }

+ 4 - 3
src/utils/model/RichText/mixins.js

@@ -246,10 +246,10 @@ export default {
                 }
                 if(betweenTag.length==0){
                     var betweenText = this.checkBetweenText(data,startIndex,endIndex)
-                    var prevTag = this.checkPrevTag(data,startIndex,tag)
-                    var nextTag = this.checkNextTag(data,endIndex,tag)
+                    var prevTag = this.checkPrevTag(data,startIndex,tag) || {}
+                    var nextTag = this.checkNextTag(data,endIndex,tag) || {}
                     // if(betweenText.length == 0){
-                        if(prevTag.tag == `<${tag}>` && prevTag.tag == `</${tag}>`){
+                        if(prevTag.tag == `<${tag}>` && nextTag.tag == `</${tag}>`){
                             arr.push({type:'text',text:item.text.substring(0,this.selectObj.startIndex - currentIndex)})
                             arr.push({type:'tag',text:`</${tag}>`})
                             arr.push({type:'text',text:item.text.substring(this.selectObj.startIndex - currentIndex,item.text.length)})
@@ -272,6 +272,7 @@ export default {
                             arr.push({type:'tag',text:`</${tag}>`})
                             arr.push({type:'text',text:item1.text.substring(this.selectObj.endIndex - currentIndex1,item1.text.length)})
                             data.splice(endIndex + len - 1,1,...arr)
+                            console.log(data)
                         }
                     // }else{
 

+ 1 - 1
src/utils/model/noPermission/index.vue

@@ -2,7 +2,7 @@
     <div class="myNoPermission" v-if="show">
         <div class="myNoPermission_content">
             <i class="el-icon-info"></i>
-            <span class="margin-left_10">未配置角色权限,无法访问</span>
+            <span class="margin-left_10">您没有访问权限</span>
         </div>
     </div>
 </template>

+ 7 - 1
src/views/analyse/custom/components/Tabs/DataItem.vue

@@ -377,7 +377,13 @@ export default {
         this.$store.commit('SET_RELOAD_DATA', true)
       }
       if (reset) {
-        this.$set(this.form.schema[this.dimension], 'expand', null)
+        if(field && field.groupBy == 'dateType'){
+           this.$set(this.form.schema[this.dimension], 'expand', '年')
+        }else{
+          this.$set(this.form.schema[this.dimension], 'expand',null)
+        }
+
+       
         await this.onChange3(this.dimension)
       }
     },

+ 54 - 35
src/views/analyse/custom/components/Tabs/Style.vue

@@ -7,9 +7,13 @@
           <style-type v-for="item in chartIcon" :item="item" @click.native="handleClick(item)" />
         </div>
       </el-collapse-item>
-      <el-collapse-item title="框架" name="8" v-if="!getShow([30])">
+      <el-collapse-item title="画布" name="8" v-if="!getShow([30])">
         <div class="content">
-          <div>
+          <div class="display_flex">
+            <span class="label">背景色</span>
+            <el-color-picker size="small"  v-model="form.setting.backgroundColor"></el-color-picker>
+          </div>
+          <div class="display_flex">
             <span class="label">宽度</span>
             <el-input placeholder="请输入宽度" v-model="form.setting.width" size="small" style="width: calc(100% - 170px);padding-left: 10px;"></el-input>
             <el-select size="small" v-model="form.setting.widthUnit" placeholder="请选择" style="width: calc(100% - 190px);margin-left: 10px;">
@@ -17,7 +21,7 @@
               <el-option label="像素" value="px"></el-option>
             </el-select>
           </div>
-          <div style="margin-top: 10px;">
+          <div class="display_flex" style="margin-top: 10px;">
             <span class="label">高度</span>
             <el-input placeholder="请输入高度" v-model="form.setting.height" size="small" style="width: calc(100% - 170px);padding-left: 10px;"></el-input>
             <el-select size="small" v-model="form.setting.heightUnit" placeholder="请选择" style="width: calc(100% - 190px);margin-left: 10px;">
@@ -27,6 +31,34 @@
           </div>
         </div>
       </el-collapse-item>
+      <el-collapse-item title="绘图区" name="4" v-if="!getShow([30, 22, 17, 19, 12, 20, 18, 21, 23, 13])">
+        <div class="content">
+          <div class="display_flex">
+            <span class="label">背景色</span>
+            <el-color-picker size="small" v-model="form.setting.gridBackgroundColor"></el-color-picker>
+          </div>
+          <div style="margin-top: 10px;">
+            <span class="label">上边距</span>
+            <el-input size="small" v-model="form.setting.gridTop" style="width: 240px;margin-left: 10px;"></el-input>
+            <span style="margin-left: 10px;">%</span>
+          </div>
+          <div style="margin-top: 10px;">
+            <span class="label">下边距</span>
+            <el-input size="small" v-model="form.setting.gridBottom" style="width: 240px;margin-left: 10px;"></el-input>
+            <span style="margin-left: 10px;">%</span>
+          </div>
+          <div style="margin-top: 10px;">
+            <span class="label">左边距</span>
+            <el-input size="small" v-model="form.setting.gridLeft" style="width: 240px;margin-left: 10px;"></el-input>
+            <span style="margin-left: 10px;">%</span>
+          </div>
+          <div style="margin-top: 10px;">
+            <span class="label">右边距</span>
+            <el-input size="small" v-model="form.setting.gridRight" style="width: 240px;margin-left: 10px;"></el-input>
+            <span style="margin-left: 10px;">%</span>
+          </div>
+        </div>
+      </el-collapse-item>
       <el-collapse-item title="气泡图" name="9" v-if="getShow([])">
         <div class="content">
           <span class="label">气泡比例</span>
@@ -39,18 +71,19 @@
           <el-input placeholder="请输入宽度" v-model="form.setting.barWidth" size="small" style="width: calc(100% - 190px);padding-left: 10px;"></el-input>
         </div>
       </el-collapse-item>
-      <el-collapse-item title="标签" name="1" v-if="!getShow([30, 19])">
+      <el-collapse-item title="数据标签" name="1" v-if="!getShow([30, 19])">
         <div class="content">
           <div>
-            <el-checkbox v-model="form.setting.dataLabel">显示标签</el-checkbox>
+            <el-checkbox v-model="form.setting.dataLabel">显示数据标签</el-checkbox>
             <template v-if="!getShow([13, 12, 20, 18, 21, 23])">
-              <span style="margin-left: 42px;" class="label">位置</span>
+              <span class="label">位置</span>
               <el-select size="small" v-model="form.setting.dataPosition" placeholder="请选择" style="width: calc(100% - 160px);margin-left: 10px;">
                 <el-option v-for="item in positionList" :label="item.label" :value="item.value"></el-option>
               </el-select>
             </template>
           </div>
-          <div style="margin-top: 10px;">
+          <div class="display_flex" style="margin-top: 10px;">
+            <span class="label" style="min-width:70px">字体样式</span>
             <el-select size="small" v-model="form.setting.fontFamily2" placeholder="请选择" style="width: calc(100% - 160px)">
               <el-option v-for="item in $constants.fontFamily" :label="item.label" :value="item.value"></el-option>
             </el-select>
@@ -118,30 +151,7 @@
           </div>
         </div>
       </el-collapse-item>
-      <el-collapse-item title="距离" name="4" v-if="!getShow([30, 22, 17, 19, 12, 20, 18, 21, 23, 13])">
-        <div class="content">
-          <div>
-            <span class="label">顶部</span>
-            <el-input size="small" v-model="form.setting.gridTop" style="width: 240px;margin-left: 10px;"></el-input>
-            <span style="margin-left: 10px;">%</span>
-          </div>
-          <div style="margin-top: 10px;">
-            <span class="label">底部</span>
-            <el-input size="small" v-model="form.setting.gridBottom" style="width: 240px;margin-left: 10px;"></el-input>
-            <span style="margin-left: 10px;">%</span>
-          </div>
-          <div style="margin-top: 10px;">
-            <span class="label">左侧</span>
-            <el-input size="small" v-model="form.setting.gridLeft" style="width: 240px;margin-left: 10px;"></el-input>
-            <span style="margin-left: 10px;">%</span>
-          </div>
-          <div style="margin-top: 10px;">
-            <span class="label">右侧</span>
-            <el-input size="small" v-model="form.setting.gridRight" style="width: 240px;margin-left: 10px;"></el-input>
-            <span style="margin-left: 10px;">%</span>
-          </div>
-        </div>
-      </el-collapse-item>
+     
       <el-collapse-item title="X轴" name="5" v-if="getShow([1, 3, 4, 7, 5, 6, 8, 9, 2, 15, 14])">
         <div class="content">
           <div>
@@ -157,7 +167,7 @@
           </div>
           <div style="margin-top: 10px;">
             <el-checkbox v-model="form.setting.fontWeight">字体加粗</el-checkbox>
-            <span class="label" style="margin-left: 15px;">标题位置</span>
+            <span class="label">标题位置</span>
             <el-select size="small" v-model="form.setting.nameLocation" style="width: calc(100% - 160px);margin-left: 10px;">
               <el-option value="start" label="左"></el-option>
               <el-option value="middle" label="中"></el-option>
@@ -181,7 +191,7 @@
           </div>
           <div style="margin-top: 10px;">
             <el-checkbox v-model="form.setting.interval">完整显示</el-checkbox>
-            <span class="label" style="margin-left: 15px;">倾斜角度</span>
+            <span class="label">倾斜角度</span>
             <el-input size="small" v-model="form.setting.rotate" placeholder="请输入" style="width: calc(100% - 160px);margin-left: 10px;"></el-input>
           </div>
         </div>
@@ -201,7 +211,7 @@
           </div>
           <div style="margin-top: 10px;">
             <el-checkbox v-model="form.setting.fontWeight2">字体加粗</el-checkbox>
-            <span class="label" style="margin-left: 15px;">标题位置</span>
+            <span class="label">标题位置</span>
             <el-select size="small" v-model="form.setting.nameLocation2" style="width: calc(100% - 160px);margin-left: 10px;">
               <el-option value="end" label="上"></el-option>
               <el-option value="middle" label="中"></el-option>
@@ -225,7 +235,7 @@
           </div>
           <div style="margin-top: 10px;">
             <el-checkbox v-model="form.setting.interval2">完整显示</el-checkbox>
-            <span class="label" style="margin-left: 15px;">倾斜角度</span>
+            <span class="label">倾斜角度</span>
             <el-input size="small" v-model="form.setting.rotate2" placeholder="请输入" style="width: calc(100% - 160px);margin-left: 10px;"></el-input>
           </div>
         </div>
@@ -399,4 +409,13 @@ export default {
     color: #6b6868;
   }
 }
+</style>
+<style lang="scss" scoped>
+  .display_flex{
+    display: flex;
+    align-items: center;
+    .label{
+      min-width: 50px;
+    }
+  }
 </style>

+ 2 - 2
src/views/analyse/custom/index.vue

@@ -30,8 +30,8 @@
             </div>
           </template>
         </el-header>
-        <el-main class="custom-analyse-chart-img-box">
-          <div v-if="showChart">
+        <el-main class="custom-analyse-chart-img-box ">
+          <div class="height_100" v-if="showChart">
             <chart ref="chartDom" :width="form.setting.width + form.setting.widthUnit" :height="form.setting.height + form.setting.heightUnit" />
           </div>
         </el-main>

+ 8 - 2
src/views/analyse/custom/mixins.js

@@ -197,12 +197,13 @@ export const chartOption = {
         show: axis === 'x' ? this.form.setting.show : this.form.setting.show2,
         fontSize: axis === 'x' ? this.form.setting.fontSize : this.form.setting.fontSize2,
         fontFamily: axis === 'x' ? this.form.setting.fontFamily : this.form.setting.fontFamily2,
-        fontWeight: (axis === 'x' ? this.form.setting.fontWeight : this.form.setting.fontWeight2) ? 'bold' : 'normal'
+        fontWeight: (axis === 'x' ? this.form.setting.fontWeight : this.form.setting.fontWeight2) ? 'bold' : 'normal',
+        padding: axis === 'x' ? [this.form.setting.paddingTop, this.form.setting.paddingRight, this.form.setting.paddingBottom, this.form.setting.paddingLeft] : [this.form.setting.paddingTop2, this.form.setting.paddingRight2, this.form.setting.paddingBottom2, this.form.setting.paddingLeft2],
       }
     },
     getNameTextStyle(axis) {
       return {
-        padding: axis === 'x' ? [this.form.setting.paddingTop, this.form.setting.paddingLeft, this.form.setting.paddingBottom, this.form.setting.paddingRight] : [this.form.setting.paddingTop2, this.form.setting.paddingLeft2, this.form.setting.paddingBottom2, this.form.setting.paddingRight2],
+        padding: axis === 'x' ? [this.form.setting.paddingTop, this.form.setting.paddingRight, this.form.setting.paddingBottom, this.form.setting.paddingLeft] : [this.form.setting.paddingTop2, this.form.setting.paddingRight2, this.form.setting.paddingBottom2, this.form.setting.paddingLeft2],
         color: axis === 'x' ? this.form.setting.fontColor : this.form.setting.fontColor2,
         fontSize: axis === 'x' ? this.form.setting.fontSize : this.form.setting.fontSize2,
         fontFamily: axis === 'x' ? this.form.setting.fontFamily : this.form.setting.fontFamily2,
@@ -294,6 +295,8 @@ export const chartOption = {
         label: this.getDataLabel()
       }]
       let grid = {
+        show: this.form.setting.gridBackgroundColor?true:false,
+        backgroundColor: this.form.setting.gridBackgroundColor,
         top: this.form.setting.gridTop + '%',
         left: this.form.setting.gridLeft + '%',
         right: this.form.setting.gridRight + '%',
@@ -375,6 +378,8 @@ export const chartOption = {
         legend.push(name)
       }
       let grid = {
+        show: this.form.setting.gridBackgroundColor?true:false,
+        backgroundColor: this.form.setting.gridBackgroundColor,
         top: this.form.setting.gridTop + '%',
         left: this.form.setting.gridLeft + '%',
         right: this.form.setting.gridRight + '%',
@@ -429,6 +434,7 @@ export const chartOption = {
     initChart(id, chartOption) {
       const chartDom = document.getElementById(id);
       const myChart = this.$echarts.init(chartDom);
+      chartOption.backgroundColor = this.form.setting.backgroundColor
       myChart.setOption(chartOption)
       // this.$store.commit('SET_MY_CHART', myChart)
       return myChart