cxmo 9 months ago
parent
commit
5e11e0e004

+ 105 - 0
src/views/dataEntry_manage/components/addAverageDialog.vue

@@ -0,0 +1,105 @@
+<template>
+    <!-- 添加同期上下限/均线/标准差 -->
+    <el-dialog
+        :visible.sync="isShow"
+        :close-on-click-modal="false"
+        :append-to-body="true"
+        @close="$emit('close')"
+        custom-class="average-edit-dialog"
+        center
+        width="650px"
+        v-dialogDrag
+        top="8vh"
+        :title="dialogTitle"
+    >
+        <div class="container">
+            <el-form>
+                <el-form-item label="倍数" v-if="averageType===3"></el-form-item>
+                <el-form-item v-if="averageType===1"
+                    :label="rangeLabelMap[averageType]" >
+                    <span>过去</span>
+                    <el-input-number v-model="averageForm.Value" controls-position="right" :min="averageType===3?1:2"></el-input-number>
+                    <span>年</span>
+                </el-form-item>
+                <el-form-item label="颜色及透明度">
+                    <el-color-picker
+                      v-model="averageForm.Color"
+                      size="mini" show-alpha
+                      :predefine="predefineColors"
+                    ></el-color-picker>
+                </el-form-item>
+                <el-form-item label="线型" v-if="averageType===2">
+                    <el-select v-model="averageForm.LineType">
+                        <el-option v-for="lineItem in lineStylesOpts"
+                            :key="lineItem.value"
+                            :label="lineItem.label"
+                            :value="lineItem.value"
+                        >
+                            <svg width="60" height="10" viewBox="0 0 60 10" fill="none" xmlns="http://www.w3.org/2000/svg" v-html="lineItem.svg">
+                            </svg>
+                        </el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="粗细" v-if="averageType===3"></el-form-item>
+                    <el-input-number v-model="averageForm.LineWidth" controls-position="right" :min="1"></el-input-number>
+                <el-form-item label="图例">
+                    <el-input></el-input>
+                </el-form-item>
+            </el-form>
+        </div>
+        <div slot="footer" class="dialog-footer" style="text-align: center;">
+            <el-button @click="$emit('close')">取消</el-button>
+            <el-button type="primary" @click="confirmPerson">保存</el-button>
+        </div>
+    </el-dialog>
+</template>
+
+<script>
+import { defaultOpts } from '@/utils/defaultOptions';
+import {lineStylesOpts} from '@/views/system_manage/chartTheme/common/config'
+export default {
+    props:{
+        isShow:{
+            type:Boolean,
+            default:false
+        },
+        averageType:{
+            type:Number,
+            default:1, //1同期上下限 2同期均线 3同期标准差
+        }
+    },
+    computed:{
+        dialogTitle(){
+            return '添加同期上下限'
+        },
+        rangeLabelMap(){
+            return {
+                1:'上下限取数范围',
+                2:'均线取数范围',
+                3:'取数范围'
+            }
+        }
+    },
+    data() {
+        return {
+            averageForm:{
+                Legend:'',//图例名称
+                Value:'',//上下限取数范围/均线取数范围/取数范围
+                Color:'#075EEE',//颜色及透明度
+                LineType:'',//线型
+                LineWidth:1,//线宽
+                Multiple:1,//倍数
+            },
+            predefineColors: defaultOpts.colors.slice(0, 2),
+            lineStylesOpts:lineStylesOpts,
+        };
+    },
+    methods: {
+
+    },
+};
+</script>
+
+<style scoped lang="scss">
+
+</style>

+ 1 - 1
src/views/dataEntry_manage/components/addMarkerDialog.vue

@@ -153,7 +153,7 @@
           </el-form-item>
 
           <!-- 标识线-指标计算部分 -->
-          <div class="custom-value-setting-wrap">
+          <div class="custom-value-setting-wrap" v-if="form.markerType==='line'">
             <!-- 指标选择 -->
             <el-form-item label="指标">
                 <!-- 固定第一个指标 -->

+ 46 - 0
src/views/dataEntry_manage/components/addRightEdbDialog.vue

@@ -0,0 +1,46 @@
+<template>
+    <!-- 添加右轴指标 -->
+    <el-dialog
+        :visible.sync="isShow"
+        :close-on-click-modal="false"
+        :append-to-body="true"
+        @close="$emit('close')"
+        custom-class="average-edit-dialog"
+        center
+        width="650px"
+        v-dialogDrag
+        top="8vh"
+        title="添加右轴指标"
+    >
+        <div class="container">
+            添加右轴指标
+        </div>
+        <div slot="footer" class="dialog-footer" style="text-align: center;">
+            <el-button @click="$emit('close')">取消</el-button>
+            <el-button type="primary" @click="confirmPerson">保存</el-button>
+        </div>
+    </el-dialog>
+</template>
+
+<script>
+export default {
+    props:{
+        isShow:{
+            type:Boolean,
+            default:false
+        },
+    },
+    data() {
+        return {
+
+        };
+    },
+    methods: {
+
+    },
+};
+</script>
+
+<style scoped lang="scss">
+
+</style>

+ 104 - 2
src/views/dataEntry_manage/components/markersSection.vue

@@ -1,5 +1,19 @@
 <template>
   <div class="chart-markers-section">
+    <!-- 季节性图升级-添加右轴指标-->
+    <div class="section-item" v-if="chartInfo.ChartType===2">
+        <div
+          class="add-cont"
+          @click="openMarkerDiaHandle('line')"
+        >
+          <img
+            src="~@/assets/img/set_m/add_ico.png"
+            alt=""
+            style="width: 16px; height: 16px; margin-right: 10px"
+          />
+          <span><!-- 添加右轴指标 -->{{`添加右轴指标`}}</span>
+        </div>
+    </div>
     <!-- 雷达不要 -->
     <template v-if="chartInfo.ChartType!==11">
       <!-- 标示线 -->
@@ -55,6 +69,57 @@
 
       </div>
     </template>
+    <!-- 季节性图升级-同期上下限/均线/标准差-->
+    <template v-if="chartInfo.ChartType===2">
+        <div class="section-item">
+            <div class="marker-item" v-if="averageList[1].isAdd">
+                <span>{{item.axisName}}: {{item.value}}</span>
+                <div style="flex-shrink:0">
+                <i class="el-icon-view icon" :style="item.isShow?'color:#0052D9':'color:#999'" @click="item.isShow=!item.isShow;updateChartHandle()"/>
+                <i class="el-icon-edit icon" style="margin:0 6px" @click="openAverageDialog(averageList[1],1)"/>
+                <i class="el-icon-delete icon" @click="deleteAverage(1)"/>
+                </div>
+            </div>
+            <div
+                class="add-cont"
+                @click="openAverageDialog(averageList[1],1)"
+            >
+                <img
+                    src="~@/assets/img/set_m/add_ico.png"
+                    alt=""
+                    style="width: 16px; height: 16px; margin-right: 10px"
+                />
+                <span><!-- 添加同期上下限 -->{{`添加同期上下限`}}</span>
+            </div>
+        </div>
+        <div class="section-item">
+            <div
+                class="add-cont"
+                @click="openMarkerDiaHandle('line')"
+            >
+                <img
+                    src="~@/assets/img/set_m/add_ico.png"
+                    alt=""
+                    style="width: 16px; height: 16px; margin-right: 10px"
+                />
+                <span><!-- 添加同期均线 -->{{`添加同期均线`}}</span>
+            </div>
+        </div>
+        <div class="section-item">
+            <div
+                class="add-cont"
+                @click="openMarkerDiaHandle('line')"
+            >
+                <img
+                    src="~@/assets/img/set_m/add_ico.png"
+                    alt=""
+                    style="width: 16px; height: 16px; margin-right: 10px"
+                />
+                <span><!-- 添加同期标准差 -->{{`添加同期标准差`}}</span>
+            </div>
+        </div>
+    </template>
+
 
     <!-- 图表说明 -->
     <div class="section-item">
@@ -138,14 +203,21 @@
         <el-button @click="chartInductionDiaForm.show=false"><!-- 取消 -->{{$t('Dialog.cancel_btn')}}</el-button>
       </div>
     </m-dialog>
+    <!-- 同期上下限/均线/标准差弹窗 -->
+    <addAverageDialog 
+        :isShow="isAddAverageDialogShow"
+        :averageType="averageType"
+    />
+    <!-- 右轴指标弹窗 -->
 
   </div>  
 </template>
 <script>
 import addMarkerDialog from './addMarkerDialog.vue'
 import mDialog from '@/components/mDialog.vue'
+import addAverageDialog from './addAverageDialog.vue'
 export default {
-  components: { addMarkerDialog,mDialog },
+  components: { addMarkerDialog,mDialog, addAverageDialog },
   props: {
     chartInfo: {
       type: Object
@@ -173,7 +245,21 @@ export default {
       chartInductionDiaForm: {
         show: false,
         text: '',
-      }
+      },
+
+      /* 同期上下限/均线/标准差弹窗 */
+      isAddAverageDialogShow:false,
+      averageType:1,//1同期上下限 2同期均线 3同期标准差
+      averageForm:{},//初始化和回显用
+      averageList:[
+        '',
+        {isAdd:false},//同期上下限
+        {isAdd:false},//同期均线
+        {isAdd:false}],//同期标准差
+
+      /* 右轴指标弹窗 */
+      isAddRightEdbDialogShow:false,
+      rightEdbForm:{},//初始化和回显用
     }
   },
   methods:{
@@ -259,6 +345,22 @@ export default {
         color: this.chartInfo.ChartThemeStyle?JSON.parse(this.chartInfo.ChartThemeStyle).markerOptions.style.color:'#333',
         fontSize: this.chartInfo.ChartThemeStyle?JSON.parse(this.chartInfo.ChartThemeStyle).markerOptions.style.fontSize:12
       };
+    },
+    //打开同期弹窗
+    openAverageDialog(data,type){
+        if(data.isAdd) return 
+        this.averageForm = data
+        this.averageType = type
+        this.isAddAverageDialogShow = true
+
+    },
+    addAverage(data,type){
+        this.averageList[type] = data
+        this.averageList[type].isAdd = true
+    },
+    deleteAverage(type){
+        this.averageList[type] = {}
+        this.averageList[type].isAdd = false
     }
   },
 }