{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\form\\CustomChartManager.vue?vue&type=template&id=15567212&scoped=true&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\form\\CustomChartManager.vue","mtime":1675071992913},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\loaders\\templateLoader.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["\n<div class=\"fullheight\">\n  <ht-table\n    @load=\"loadData\"\n    @row-click=\"rowClick\"\n    :data=\"data\"\n    :pageResult=\"pageResult\"\n    :selection=\"true\"\n    :show-export=\"false\"\n    :show-custom-column=\"false\"\n    quick-search-props=\"name,alias\"\n    ref=\"table\">\n    <template v-slot:toolbar>\n      <el-button-group>\n        <el-button size=\"small\" @click=\"showDialog()\" icon=\"el-icon-plus\">添加</el-button>\n        <el-button size=\"small\" @click=\"importDialogVisible = true;\" icon=\"el-icon-back\">导入</el-button>\n        <el-button size=\"small\" @click=\"handleExport\" icon=\"el-icon-right\">导出</el-button>\n        <ht-delete-button\n            :url=\"deleteUrl\"\n            style=\"margin:0;\"\n            :htTable=\"$refs.table\">删除\n        </ht-delete-button>\n      </el-button-group>\n    </template>\n    <template>\n      <ht-table-column type=\"index\" width=\"50\" align=\"center\" label=\"序号\" />\n      <ht-table-column\n        prop=\"name\"\n        label=\"名称\"\n        :sortable=\"true\"\n        :show-overflow-tooltip=\"true\"\n      >\n        <template slot-scope=\"scope\">\n          <el-link type=\"primary\"  @click=\"showDialog(scope.row.id)\" title=\"查看详情\" >{{scope.row.name}}</el-link>\n        </template>\n      </ht-table-column>\n      <ht-table-column\n        prop=\"alias\"\n        label=\"别名\"\n        :sortable=\"true\"\n        :show-overflow-tooltip=\"true\"\n      />\n      <ht-table-column\n        prop=\"style\"\n        label=\"图表类型\"\n        width=\"120\"\n        :filters=\"styles\"\n      >\n        <template v-slot=\"{ row }\">\n          <el-tag v-if=\"row.style === 1 || row.style === 2\">折线图/柱状图</el-tag>\n          <el-tag type=\"warning\" v-if=\"row.style === 3\">饼图</el-tag>\n          <el-tag type=\"danger\" v-if=\"row.style === 4\">雷达图</el-tag>\n          <el-tag type=\"info\" v-if=\"row.style === 5\">漏斗图</el-tag>\n          <el-tag type=\"success\" v-if=\"row.style === 6\">散点图</el-tag>\n          <el-tag type=\"warning\" v-if=\"row.style === 7\">热力图</el-tag>\n        </template>\n      </ht-table-column>\n      <ht-table-column\n        prop=\"isTable\"\n        label=\"查询方式\"\n        width=\"100\"\n        :filters=\"[\n          { text: '表', value: '1' },\n          { text: '自定义SQL', value: '2' }\n        ]\"\n      >\n        <template v-slot=\"{ row }\">\n          <el-tag type=\"info\" v-if=\"row.isTable === 1\">表</el-tag>\n          <el-tag type=\"danger\" v-if=\"row.isTable === 2\">自定义SQL</el-tag>\n        </template>\n      </ht-table-column>\n      <ht-table-column\n        prop=\"dsalias\"\n        label=\"数据源别名\"\n        width=\"110\"\n        :sortable=\"true\"\n        :show-overflow-tooltip=\"true\"\n      />\n      <ht-table-column label=\"操作\" width=\"110\">\n        <template slot-scope=\"scope\">\n          <el-button size=\"mini\" icon=\"el-icon-view\" @click=\"preview(scope.row.id)\">预览</el-button>\n        </template>\n      </ht-table-column>\n    </template>\n  </ht-table>\n  <el-dialog\n    width=\"50%\"\n    title=\"编辑图表\"\n    :visible=\"dialogVisible\"\n    :close-on-click-modal=\"false\"\n    top=\"6vh\"\n    class=\"edit-chart\"\n    :before-close=\"beforeClose\">\n    <el-tabs v-model=\"activeTab\" type=\"card\">\n      <el-tab-pane label=\"基础设置\" name=\"basicSetting\">\n        <el-form v-model=\"prop\" data-vv-scope=\"propForm\">\n          <ht-form-item label=\"名称\">\n            <ht-input\n              v-model=\"prop.name\"\n              placeholder=\"请输入图表名称\"\n              :validate=\"{ required: true }\"\n              :maxlength=\"50\"\n              :showWordLimit=\"true\"\n            />\n          </ht-form-item>\n          <ht-form-item label=\"别名\">\n            <ht-input\n              v-model=\"prop.alias\"\n              placeholder=\"请输入图表别名\"\n              name=\"chartName\"\n              v-pinyin=\"prop.name\"\n              @change=\"changeName()\"\n              :validate=\"{ required: true, regex:{exp:'^[a-zA-Z][a-zA-Z0-9_]*$', message:'只能输入字母、数字、下划线，且以字母开头' } }\"\n              :disabled=\"prop.id ? true : false\"\n              :maxlength=\"50\"\n              :showWordLimit=\"true\"\n            />\n          </ht-form-item>\n          <ht-form-item label=\"图表类型\">\n            <ht-select\n                v-model=\"prop.style\"\n                :options=\"styles\"\n                :validate=\"{required:true}\"\n                :props=\"{key:'value',value:'text'}\"/>\n          </ht-form-item>\n          <ht-form-item label=\"图表尺寸\">\n            <ht-input v-model=\"prop.width\" placeholder=\"请输入宽度\" :validate=\"{regex:{exp:'^[0-9]*$', message:'只能输入数字'}}\"/>px\n            <ht-input v-model=\"prop.height\" placeholder=\"请输入高度\" :validate=\"{regex:{exp:'^[0-9]*$', message:'只能输入数字'}}\"/>px\n          </ht-form-item>\n          <template v-if=\"!prop.id\">\n            <ht-form-item label=\"数据源\">\n              <ht-select\n                  v-model=\"prop.dsalias\"\n                  :options=\"dataSources\"\n                  :props=\"{key:'alias',value:'name'}\"/>\n            </ht-form-item>\n            <ht-form-item label=\"查询方式\">\n              <el-select v-model=\"prop.isTable\">\n                <el-option key=\"table\" label=\"表\" :value=\"1\" />\n                <el-option key=\"diySql\" label=\"自定义SQL\" :value=\"2\" />\n              </el-select>\n            </ht-form-item>\n            <template id=\"table\" v-if=\"prop.isTable===1\">\n              <ht-form-item label=\"选择表\"  class=\"is-required\">\n                <el-select v-model=\"prop.objName\">\n                  <el-option\n                      v-for=\"item in tablesOrViews\"\n                      :key=\"item.name\"\n                      :label=\"item.name+'('+item.comment+')'\"\n                      :value=\"item.name\"/>\n                </el-select>\n                <ht-input v-model=\"state\" placeholder=\"请输入表名\" :maxlength=\"50\" :showWordLimit=\"true\" />\n                <el-button type=\"primary\" @click=\"getByDsObjectName()\">查询</el-button\n                >\n              </ht-form-item >\n            </template>\n          </template>\n          <div class=\"dbProp\" style=\"width: 100%\" v-if=\"prop.id\">数据源：{{prop.dsalias}},表名：{{prop.objName}}</div>\n          <ht-form-item label=\"自定义SQL\" v-if=\"prop.isTable===2\">\n            <ht-input\n                type=\"textarea\"\n                v-model=\"prop.diySql\"\n                :autosize=\"{ minRows: 5, maxRows: 5}\"\n            />\n            <el-button type=\"primary\" @click=\"checkSql\">验证SQL</el-button>\n          </ht-form-item>\n          <ht-form-item label=\"最大数据量\">\n            <el-tooltip class=\"item\" effect=\"dark\" content=\"输入范围为0-500，超过500则当成500处理，输入0为无限制\" placement=\"top-start\">\n              <i class=\"el-icon-question\"/>\n            </el-tooltip>\n            <ht-input v-model=\"config.maxLength\"/>\n          </ht-form-item>\n          <ht-form-item label=\"设置列\">\n            <el-button type=\"primary\" @click=\"columnSetting()\"\n            >设置列</el-button\n            >\n          </ht-form-item>\n        </el-form>\n      </el-tab-pane>\n      <el-tab-pane label=\"标题设置\" name=\"titleSetting\">\n        <el-form v-model=\"config.title\">\n          <ht-form-item label=\"标题显示\">\n            <el-switch\n              v-model=\"config.title.show\"\n              active-color=\"#13ce66\"\n              inactive-color=\"#ff4949\"\n            >\n            </el-switch>\n          </ht-form-item>\n          <template v-if=\"config.title.show\">\n            <ht-form-item label=\"水平对齐\">\n              <el-radio-group v-model=\"config.title.left\">\n                <el-radio-button label=\"auto\">默认</el-radio-button>\n                <el-radio-button label=\"left\">左</el-radio-button>\n                <el-radio-button label=\"center\">中</el-radio-button>\n                <el-radio-button label=\"right\">右</el-radio-button>\n              </el-radio-group>\n            </ht-form-item>\n            <ht-form-item label=\"垂直对齐\">\n              <el-radio-group v-model=\"config.title.top\">\n                <el-radio-button label=\"auto\">默认</el-radio-button>\n                <el-radio-button label=\"top\">上</el-radio-button>\n                <el-radio-button label=\"middle\">中</el-radio-button>\n                <el-radio-button label=\"bottom\">下</el-radio-button>\n              </el-radio-group>\n            </ht-form-item>\n            <ht-form-item label=\"字体\">\n              <el-select v-model=\"config.title.textStyle.fontFamily\">\n                <el-option\n                    v-for=\"fontFamily in fontFamilies\"\n                    :key=\"fontFamily\"\n                    :label=\"fontFamily\"\n                    :value=\"fontFamily\"\n                >\n                </el-option>\n              </el-select>\n            </ht-form-item>\n            <ht-form-item label=\"字体风格\">\n              <el-select v-model=\"config.title.textStyle.fontStyle\">\n                <el-option\n                    v-for=\"fontStyle in fontStyles\"\n                    :key=\"fontStyle\"\n                    :label=\"fontStyle\"\n                    :value=\"fontStyle\"\n                >\n                </el-option>\n              </el-select>\n            </ht-form-item>\n            <ht-form-item label=\"字体大小\">\n              <ht-input\n                  v-model=\"config.title.textStyle.fontSize\"\n                  placeholder=\"请输入字体大小\"\n              >\n              </ht-input>\n            </ht-form-item>\n            <ht-form-item label=\"副标题\">\n              <ht-input\n                  v-model=\"config.title.subtext\"\n                  placeholder=\"请输入副标题\"\n                  :maxlength=\"50\"\n                  :showWordLimit=\"true\"\n              >\n              </ht-input>\n            </ht-form-item>\n          </template>\n        </el-form>\n      </el-tab-pane>\n      <el-tab-pane label=\"图例设置\" name=\"legendSetting\">\n        <el-form v-model=\"config.legend\">\n          <ht-form-item label=\"图例显示\">\n            <el-switch\n              v-model=\"config.legend.show\"\n              active-color=\"#13ce66\"\n              inactive-color=\"#ff4949\"\n            >\n            </el-switch>\n          </ht-form-item>\n          <template v-if=\"config.legend.show\">\n            <ht-form-item label=\"图例类型\">\n              <el-radio-group v-model=\"config.legend.type\">\n                <el-radio-button label=\"plain\">普通图例</el-radio-button>\n                <el-radio-button label=\"scroll\">可翻页图例</el-radio-button>\n              </el-radio-group>\n            </ht-form-item>\n            <ht-form-item label=\"水平对齐\">\n              <el-radio-group v-model=\"config.legend.left\">\n                <el-radio-button label=\"auto\">默认</el-radio-button>\n                <el-radio-button label=\"left\">左</el-radio-button>\n                <el-radio-button label=\"center\">中</el-radio-button>\n                <el-radio-button label=\"right\">右</el-radio-button>\n              </el-radio-group>\n            </ht-form-item>\n            <ht-form-item label=\"垂直对齐\">\n              <el-radio-group v-model=\"config.legend.top\">\n                <el-radio-button label=\"auto\">默认</el-radio-button>\n                <el-radio-button label=\"top\">上</el-radio-button>\n                <el-radio-button label=\"middle\">中</el-radio-button>\n                <el-radio-button label=\"bottom\">下</el-radio-button>\n              </el-radio-group>\n            </ht-form-item>\n            <ht-form-item label=\"布局朝向\">\n              <el-radio-group v-model=\"config.legend.orient\">\n                <el-radio-button label=\"horizontal\">水平布局</el-radio-button>\n                <el-radio-button label=\"vertical\">垂直布局</el-radio-button>\n              </el-radio-group>\n            </ht-form-item>\n          </template>\n        </el-form>\n      </el-tab-pane>\n      <el-tab-pane label=\"数据展示\" name=\"dataSetting\">\n        <el-form>\n          <template v-if=\"prop.style===1\">\n            <ht-form-item label=\"开启双Y轴\">\n              <el-switch\n                  v-model=\"line.doubleYAxis\"\n                  active-color=\"#13ce66\"\n                  inactive-color=\"#ff4949\">\n              </el-switch>\n            </ht-form-item>\n            <ht-form-item label=\"是否堆叠\">\n              <el-switch\n                  v-model=\"line.stack\"\n                  active-color=\"#13ce66\"\n                  inactive-color=\"#ff4949\">\n              </el-switch>\n            </ht-form-item>\n            <ht-form-item label=\"XY轴转换\">\n              <el-switch\n                  v-model=\"line.showType\"\n                  active-color=\"#13ce66\"\n                  inactive-color=\"#ff4949\">\n              </el-switch>\n            </ht-form-item>\n            <ht-form-item label=\"折线平滑\">\n              <el-switch\n                  v-model=\"line.smooth\"\n                  active-color=\"#13ce66\"\n                  inactive-color=\"#ff4949\">\n              </el-switch>\n            </ht-form-item>\n            <ht-form-item label=\"缩放区域\">\n              <el-switch\n                  v-model=\"line.dataZoom\"\n                  active-color=\"#13ce66\"\n                  inactive-color=\"#ff4949\">\n              </el-switch>\n            </ht-form-item>\n          </template>\n          <template v-else-if=\"prop.style===3\">\n            <ht-form-item label=\"数据调用方式\">\n              <ht-radio v-model=\"pie.showType\" :options=\"[{ key: true, value:'列数据展示'}, { key: false, value:'行数据展示'}]\"/>\n            </ht-form-item>\n            <ht-form-item label=\"文本标签位置\">\n              <ht-radio v-model=\"pie.label.position\" :options=\"[{ key: 'outside', value:'外部'}, { key: 'inside', value:'内部'}]\"/>\n            </ht-form-item>\n            <ht-form-item label=\"开启选中模式\">\n              <ht-radio v-model=\"pie.selectedMode\" :options=\"[{ key: false, value:'不选'}, { key: 'single', value:'单选'}, { key: 'multiple', value:'多选'}]\"/>\n            </ht-form-item>\n            <ht-form-item label=\"南丁格尔玫瑰\">\n              <ht-radio v-model=\"pie.roseType\" :options=\"[{ key: false, value:'不显示'}, { key: 'radius', value:'半径显示'}, { key: 'area', value:'同角显示'}]\"/>\n            </ht-form-item>\n            <ht-form-item label=\"半径\">\n              <ht-input v-model=\"pie.radius[0]\"/>%~\n              <ht-input v-model=\"pie.radius[1]\"/>%\n            </ht-form-item>\n            <ht-form-item label=\"中心位置\">\n              水平位置：<ht-input v-model=\"pie.center[0]\"/>%<br>\n              垂直位置：<ht-input v-model=\"pie.center[1]\"/>%\n            </ht-form-item>\n          </template>\n          <template v-else-if=\"prop.style===4\">\n            <ht-form-item label=\"数据调用方式\">\n              <ht-radio v-model=\"radar.showType\" :options=\"[{ key: true, value:'列数据展示'}, { key: false, value:'行数据展示'}]\"/>\n            </ht-form-item>\n            <ht-form-item label=\"区域阴影\">\n              <el-switch\n                  v-model=\"radar.areaStyle\"\n                  active-color=\"#13ce66\"\n                  inactive-color=\"#ff4949\">\n              </el-switch>\n            </ht-form-item>\n            <ht-form-item label=\"半径\">\n              <ht-input v-model=\"radar.radius\"/>\n            </ht-form-item>\n            <ht-form-item label=\"中心位置\">\n              水平位置：<ht-input v-model=\"radar.center[0]\"/>%<br>\n              垂直位置：<ht-input v-model=\"radar.center[1]\"/>%\n            </ht-form-item>\n          </template>\n          <template v-else-if=\"prop.style===5\">\n            <ht-form-item label=\"数据调用方式\">\n              <ht-radio v-model=\"funnel.showType\" :options=\"[{ key: true, value:'列数据展示'}, { key: false, value:'行数据展示'}]\"/>\n            </ht-form-item>\n            <ht-form-item label=\"文本标签位置\">\n              <ht-radio v-model=\"funnel.label.position\" :options=\"[{ key: 'outside', value:'外部'}, { key: 'inside', value:'内部'}]\"/>\n            </ht-form-item>\n            <ht-form-item label=\"图形对齐\">\n              <ht-radio v-model=\"funnel.funnelAlign\" :options=\"[{ key: 'left', value:'靠左'}, { key: 'center', value:'居中'},{key:'right',value:'靠右'}]\"/>\n            </ht-form-item>\n            <ht-form-item label=\"图形排序\">\n              <ht-radio v-model=\"funnel.sort\" :options=\"[{ key: 'ascending', value:'金字塔'}, { key: 'descending', value:'倒金字塔'},{key:'none',value:'不排序'}]\"/>\n            </ht-form-item>\n          </template>\n          <template v-else-if=\"prop.style===6\">\n            <ht-form-item label=\"数据调用方式\">\n              <ht-radio v-model=\"scatter.showType\" :options=\"[{ key: true, value:'列数据展示'}, { key: false, value:'行数据展示'}]\"/>\n            </ht-form-item>\n            <ht-form-item label=\"坐标轴类型\">\n              <ht-radio v-model=\"scatter.xAxisType\" :options=\"[{key: 'category', value:'类目轴'},{key: 'value',value:'数值轴'}]\"/>\n              <el-tooltip class=\"item\" effect=\"dark\" content=\"当X轴的值不是Number时，请选择类目轴，否则会导致显示异常。\">\n                <i class=\"el-icon-question\"/>\n              </el-tooltip>\n            </ht-form-item>\n          </template>\n          <template v-else>\n            <div>暂无配置</div>\n          </template>\n        </el-form>\n      </el-tab-pane>\n    </el-tabs>\n    <div slot=\"footer\" class=\"dialog-footer\">\n      <el-button type=\"primary\" @click=\"save()\">{{\n        $t(\"eip.common.save\")\n        }}</el-button>\n      <el-button @click=\"close('dialogVisible')\">{{\n        $t(\"eip.common.cancel\")\n      }}</el-button>\n    </div>\n    <eip-chart-setting\n        ref=\"columnSetting\"\n        :chartStyle=\"prop.style\"\n        :param=\"param\"\n        :yAxis=\"prop.displayfield\"\n        :xAxis=\"prop.xaxisField\"\n        :condition=\"prop.conditionfield\"\n        :sort=\"prop.sortfield\"\n        @save=\"saveColumnSetting\"/>\n  </el-dialog>\n  <el-dialog\n    class=\"custom-chart-preview-dialog\"\n    title=\"图表预览\"\n    width=\"55%\"\n    :close-on-click-modal=\"false\"\n    :visible=\"chartDialogVisible\"\n    :before-close=\"beforeChartClose\">\n    <eip-chart :id=\"id\" v-if=\"chartDialogVisible\"/>\n  </el-dialog>\n  <el-dialog\n      title=\"导入数据图表\"\n      :visible.sync=\"importDialogVisible\"\n      width=\"40%\"\n      top=\"30vh\"\n      :close-on-click-modal=\"false\"\n      v-if=\"importDialogVisible\">\n    <div style=\"height:150px;padding-left: 20px ;\">\n      <el-upload\n          style=\"display: inline-block;\"\n          :action=\"uploadUrl\"\n          :on-success=\"handleUploadResult\"\n          :on-error=\"handleUploadResult\"\n          :headers=\"uploadHeaders\"\n          :on-exceed=\"onExceed\"\n          accept=\".zip\"\n          :before-upload=\"beforeUpload\"\n          :limit=\"1\"\n          :auto-upload=\"false\"\n          ref=\"upload\">\n        <el-button size=\"small\" icon=\"el-icon-upload\">选择数据图表</el-button>\n      </el-upload>\n    </div>\n    <span slot=\"footer\" class=\"dialog-footer\">\n          <el-button\n              type=\"primary\"\n              @click=\"uploadSubmit\"\n              element-loading-text=\"导入中...\"\n              v-loading.fullscreen.lock=\"fullscreenLoading\">确 定</el-button>\n          <el-button @click=\"importDialogVisible = false\">取 消</el-button>\n        </span>\n  </el-dialog>\n</div>\n",null]}