提交 4a1da3ff 编写于 作者: haochangdi's avatar haochangdi

mvp开放给所有得用户

上级 f2814979
......@@ -9075,6 +9075,11 @@
"integrity": "sha512-x3LV3wdmmERhVCYy3quqA57NJW7F3i6faas++pJQWtknWT+n7k30F4TVdHvCLn48peTJFRvCpxs3UuFPqgeELg==",
"dev": true
},
"vue-ueditor-wrap": {
"version": "2.4.1",
"resolved": "http://192.168.110.93:4873/vue-ueditor-wrap/-/vue-ueditor-wrap-2.4.1.tgz",
"integrity": "sha512-UjZz0I5Fy8ADrmvjCqTJm+XJVkf52hi6/yajcTyjqG20DTS2IVByFF26TI69by9PZApwbC+eHkV/lALcvEFgjw=="
},
"vuex": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/vuex/-/vuex-2.5.0.tgz",
......
......@@ -35,6 +35,7 @@
"vue": "^2.1.0",
"vue-infinite-scroll": "^2.0.2",
"vue-router": "^2.1.1",
"vue-ueditor-wrap": "^2.4.1",
"vuex": "^2.0.0"
},
"devDependencies": {
......
此差异已折叠。
<template>
<div class="dialog">
<el-dialog
:title="dialogObj.title"
:show-close=false
:visible.sync="dialogObj.visible"
:close-on-click-modal="false"
width="600px"
center>
<p style="text-align: center;">{{dialogObj.message}}</p>
<span slot="footer" class="dialog-footer">
<el-button @click="confirm">确 定</el-button>
<el-button type="primary" @click="hide">取 消</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
props: {
dialogObj: {
type: Object,
default: () => {
return null;
}
}
},
data() {
return {
}
},
created() {},
methods: {
confirm() {
this.$emit('confirm');
},
hide() {
this.$emit('hide');
}
}
}
</script>
<style lang="scss" scoped>
</style>
<!--生态圈-->
<template>
<div class="ecology">
<el-form :inline="true" :model="formOrganization" class="demo-form-inline">
<el-form-item label>
<el-select
size="small"
v-model="formEcology.ecology"
placeholder="选择小生态"
@change="selectChangeEcology"
:disabled="status4Flag == 1"
>
<el-option
v-for="item in ecologySelect"
:key="item.id"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<span class="span_ecology">{{ checkedEcology }}</span>
</el-form>
<el-table
class="rim"
ref="multipleEcology"
:data="tableEcology"
tooltip-effect="dark"
style="width: 100%"
>
<el-table-column
type="selection"
width="55"
:selectable="selectableTableEcology"
:reserve-selection="true"
></el-table-column>
<el-table-column prop="name" label="医院名称" min-width="100" align="center"></el-table-column>
<el-table-column prop="hospitalLevelName" label="医院级别" align="center"></el-table-column>
<el-table-column prop="provinceName" label="所属省份" align="center"></el-table-column>
<el-table-column prop="cityName" label="所属城市" align="center"></el-table-column>
<el-table-column prop="countyName" label="所属区县" align="center"></el-table-column>
<el-table-column prop="townName" label="所属街道" align="center"></el-table-column>
<div slot="empty">
<div class="table-empty">
<img src="../../../assets/image/no-content1.png">
<p>没有机构信息!</p>
</div>
</div>
</el-table>
<div class="pagination">
<el-pagination
background
@size-change="handleSizeEcology"
@current-change="handleCurrentEcology"
:current-page="formEcology.pageNum"
:page-sizes="[10, 20, 40]"
:page-size="formEcology.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalEcology"
></el-pagination>
</div>
</div>
</template>
<script>
let vm = null;
import { doUpload, getFilePath } from "../../../utils/qiniu-util";
import { mapGetters } from "vuex";
import { openLoading, closeLoading } from "../../../utils/utils";
import * as commonUtil from "../../../utils/utils";
import * as operationData from "../../../utils/operation";
import { getExeclUrl } from "@/utils/index";
import {
uploadOrgExcel,
uploadPersonExcel
} from "@/utils/education/educationApi";
import Sortable from "sortablejs";
export default {
data() {
return {
formOrganization: {
name: "",
administrativeId: "0",
administrativeIdList: ["0"],
level: "-1",
chechAll: true,
pageNum: 1,
pageSize: 10
},
status4Flag: '',
checkedEcology: "",
ecologySelect: [],
formEcology: {
ecology: "",
pageNum: 1,
pageSize: 10
},
totalEcology: 0,
tableEcology: [],
checkTableEcology: "",
getRowKeysEcology(row) {
return row.id;
},
lookedEcology: [],
changedEcology: [],
changedEcology2: [],
projectId: 623
}
},
created() {
vm = this;
this.getEcologySelect();
},
methods: {
//选择小生态
selectChangeEcology(value) {
this.formEcology.pageNum = 1;
//console.log('select',value);
for (let i = 0; i < this.ecologySelect.length; i++) {
if (this.ecologySelect[i].value == value) {
this.checkedEcology = this.ecologySelect[i].label;
}
}
this.formEcology.ecology = value;
this.getEcology();
},
getEcologySelect() {
let req = {};
vm
.GET("portal/scope/v1/" + this.projectId + "/ecology", req)
.then(res => {
console.log("查询小生态列表", res);
this.ecologySelect = operationData.getEcologySelect(res.data.list);
if (res.data.chooseIdList.length > 0) {
this.formEcology.ecology = res.data.chooseIdList[0];
this.getEcology();
}
});
},
//获取小生态数据
getEcology() {
let req = {};
req = this.formEcology;
openLoading(vm);
vm
.GET("portal/scope/v1/" + this.projectId + "/organization", req)
.then(res => {
closeLoading(vm);
console.log("根基小生态查询机构列表信息", res);
this.tableEcology = res.data.organizationList;
this.totalEcology = res.data.total;
let tableStatus = this.tableEcology;
tableStatus.forEach(row => {
this.$refs.multipleEcology.toggleRowSelection(row);
});
});
},
// 初始化小生态
initEcology() {
let tableStatus = this.tableEcology;
if (typeof tableStatus === "undefined") {
return;
}
tableStatus.forEach(row => {
let idList = [];
idList[0] = row.id;
let intersect = operationData.getIntersect(idList, this.changedEcology);
let intersect2 = operationData.getIntersect(
idList,
this.changedEcology2
);
if (intersect.length > 0) {
//选中
} else if (intersect2.length > 0) {
//不选
} else {
if (row.status == 1) {
this.$nextTick(function() {
this.$refs.multipleEcology.toggleRowSelection(row);
});
}
}
});
},
// 选择生态table
selectableTableEcology(row, index) {
return false;
},
//科室table修改(分页相关)
handleSizeEcology(val) {
console.log(`每页 ${val} 条`);
this.formEcology.pageSize = val;
this.getEcology();
},
//科室table修改(分页相关)
handleCurrentEcology(val) {
console.log(`当前页: ${val}`);
this.formEcology.pageNum = val;
this.getEcology();
},
}
}
</script>
<style lang="scss" scoped>
</style>
//
<template>
<div class="select-people">
<el-tab-pane label="设定人员" name="fourth">
<el-form :inline="true" :model="formPerson" class="demo-form-inline">
<el-form-item label>
<el-input size="small" v-model="formPerson.hospitalName" placeholder="请输入机构名称"></el-input>
</el-form-item>
<el-form-item label>
<el-input size="small" v-model="formPerson.doctorName" placeholder="请输入人员名称"></el-input>
</el-form-item>
<el-form-item>
<el-button size="small" type="primary" @click="searchPeople">搜索</el-button>
</el-form-item>
<el-form-item>
<el-button size="small" type="primary" @click="resetOrgOrPerson('person')">重置</el-button>
</el-form-item>
<el-form-item style="float:right;">
<el-upload
v-if="idType == 1 && status4Flag != 1"
class="upload-excel"
action="#"
accept=".xlsx"
multiple
:limit="1"
:before-upload="uploadPerson"
>
<el-button size="small">导入人员名单</el-button>
<el-button class="down-button" slot="tip" size="small" @click="download('person')">下载导入模板</el-button>
</el-upload>
<div v-if="idType == 1 && status4Flag == 1">
<el-button size="small" @click="dialogUpload = true">导入人员名单</el-button>
<el-button class="down-button" slot="tip" size="small" @click="download('person')">下载导入模板</el-button>
</div>
</el-form-item>
</el-form>
<el-table
class="rim"
ref="multiplePerson"
:data="tablePerson"
tooltip-effect="dark"
style="width: 100%"
@select-all="selectAllPerson"
@select="selectPerson"
>
<el-table-column
type="selection"
width="55"
:selectable="selectableTableList"
></el-table-column>
<el-table-column prop="name" label="人员名称" align="center"></el-table-column>
<el-table-column prop="hospitalName" label="所属医院" align="center"></el-table-column>
<el-table-column prop="departmentName" label="所属科室" align="center"></el-table-column>
<el-table-column prop="provinceName" label="所属省份" align="center"></el-table-column>
<el-table-column prop="cityName" label="所属城市" align="center"></el-table-column>
<el-table-column prop="countyName" label="所属区县" align="center"></el-table-column>
<div slot="empty">
<div class="table-empty">
<img src="../../assets/image/no-content1.png">
<p>没有人员信息</p>
</div>
</div>
</el-table>
<div class="pagination">
<el-pagination
background
@size-change="handleSizePerson"
@current-change="handleCurrentPerson"
:current-page="formPerson.pageNum"
:page-sizes="[10, 20, 40]"
:page-size="formPerson.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalPerson"
></el-pagination>
</div>
</el-tab-pane>
</div>
</template>
<script>
export default {
data() {
return {
getRowKeysPerson(row) {
return row.id;
},
formPerson: {
hospitalId: 0,
departmentId: -1,
doctorName: "",
hospitalName: "",
pageNum: 1,
pageSize: 10
},
hospitalList: [],
departmentList: [],
tablePerson: new Array(),
multipleSelectionPerson: [],
currentPerson: 1,
pageSizePerson: 2,
totalPerson: 10,
updatedPerson: false,
lookedPerson: [],
changedPerson: [],
changedPerson2: [],
}
},
created() {},
methods: {
//选择搜索机构方式
searchPeople() {
this.formPerson.pageNum = 1;
let searchForm = this.formPerson;
if (searchForm.hospitalName === "" && searchForm.doctorName === "") {
this.searchPeopleType = "";
this.getPeople();
} else {
this.searchPeopleType = "choose";
this.getPeopleChoose();
}
},
}
}
</script>
<style lang="scss" scoped>
</style>
<!---选择行政范围-->
<template>
<div class="select-region-wrap">
<el-row :gutter="20">
<el-col class="rim" :span="12">
<el-tree
default-expand-all
:data="treeData"
show-checkbox
node-key="id"
ref="tree"
highlight-current
:props="defaultProps"
@check="onChecked"
>
<span class="custom-tree-node" slot-scope="{ node, data }">
<span>{{ node.label }}</span>
<span>
<el-button
v-if="node.level < 5"
type="text"
icon="el-icon-caret-bottom"
size="small"
@click="() => append(data,node)"
></el-button>
</span>
</span>
</el-tree>
</el-col>
<el-col :span="11">
<p class="area-p">
项目范围包含下列区域所有机构和人员({{ tagsRegion.length }})
</p>
<el-tag
v-for="tag in tagsRegion"
:key="tag.name"
closable
:type="tag.type"
@close="handleCloseTree(tag)"
>{{tag.name}}</el-tag>
</el-col>
</el-row>
</div>
</template>
<script>
let vm = null;
import BreadCrumb from "../../../components/breadcrumb.vue";
import { doUpload, getFilePath } from "../../../utils/qiniu-util";
import { mapGetters } from "vuex";
import { openLoading, closeLoading } from "../../../utils/utils";
import * as commonUtil from "../../../utils/utils";
import * as operationData from "../../../utils/operation";
import { getExeclUrl } from "@/utils/index";
import {
uploadOrgExcel,
uploadPersonExcel
} from "@/utils/education/educationApi";
import Sortable from "sortablejs";
export default {
data() {
return {
scopeReq: {}, // 区域范围
allSelectedKeys: [],
updatedTree: false,
defaultProps: {
children: "children",
label: "label",
isLeaf: "isLeaf"
},
treeData: [],
tagsRegion: [],
projectId: 640
}
},
created() {
vm = this;
this.initRange();
},
methods: {
//选择范围 初始化
initRange() {
console.log('====================initRange')
let projectId = this.projectId;
if (projectId == null) {
//新建
} else {
//编辑
this.getAdministrative();
}
},
//查询行政范围(树)
getAdministrative() {
console.log('=========================getAdministrative')
let req = {
projectId: this.projectId
};
openLoading(vm);
vm.GET("portal/scope/v1/administrative", req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
//console.log(res.data);
let administrativeAll = res.data.administrativeAll;
let administrative = res.data.administrative;
this.treeData = [];
this.treeData[0] = administrativeAll;
this.setTreeData(administrative);
this.getCheckedTree();
}
});
},
//获取勾选树
getCheckedTree() {
console.log('=========================getCheckedTree')
if (this.idType != 2) {
let allTree = JSON.parse(JSON.stringify(this.treeData[0].children));
let changedTags = JSON.parse(JSON.stringify(this.tagsRegion));
let organizationArea = operationData.treeHandler(allTree, changedTags);
console.log("多级树:", organizationArea);
this.organizationRegion = organizationArea;
}
},
//初始化范围树
setTreeData(administrative) {
console.log('=========================setTreeData')
let treeIdList = [];
let checkList = [];
for (let i = 0; i < administrative.length; i++) {
treeIdList.push(administrative[i].id);
checkList[i] = {};
checkList[i].name = administrative[i].label;
checkList[i].key = administrative[i].id;
}
//console.log(treeIdList);
this.$refs.tree.setCheckedKeys(treeIdList);
this.tagsRegion = checkList;
},
// 选择行政范围
onChecked(node, data) {
console.log('=========================onChecked')
vm.checkUpdate(node, data);
//重构归并树
let checkedTree = operationData.getSimpleCheckedNodes(
this.$refs.tree.store
);
let halfCheckedTree = this.$refs.tree.getHalfCheckedKeys();
let allSelectedKeys = operationData.setSelectedKeys(
checkedTree,
halfCheckedTree
);
//重构内容
this.allSelectedKeys = allSelectedKeys;
this.initCheckList(allSelectedKeys);
//console.log("allSelectedKeys", allSelectedKeys);
//改变行政范围后,更新设定机构和设定人员
this.updateOrganizationAndPerson(allSelectedKeys);
this.updatedTree = true;
},
//v2.2教培更新
checkUpdate(node, data) {
console.log('=========================checkUpdate')
let flag = -1;
flag = data.checkedKeys.indexOf(node.id);
if (vm.status4Flag == 1 && flag >= 0) {
console.log(node, data, flag, vm.status4Flag);
vm.nowCheck = node;
vm.warnType = 0;
vm.dialogWarn = true;
// this.$refs.tree.setChecked(data,false)
}
},
//列举选中地区
initCheckList(allSelectedKeys) {
console.log('=========================initCheckList')
this.tagsRegion = [];
// console.log(allSelectedKeys);
// console.log(this.$refs.tree.getCheckedNodes());
let nodeData = this.$refs.tree.getCheckedNodes();
for (let i = 0; i < nodeData.length; i++) {
for (let j = 0; j < allSelectedKeys.length; j++) {
if (
allSelectedKeys[j].type == 1 &&
nodeData[i].id == allSelectedKeys[j].key
) {
let tagObj = {};
tagObj.name = nodeData[i].label;
tagObj.key = nodeData[i].id;
this.tagsRegion.push(tagObj);
}
}
}
},
//行政范围改变更新设定机构
updateOrganizationAndPerson(allSelectedKeys) {
console.log('=========================updateOrganizationAndPerson')
this.tableOrganization = [];
this.tablePerson = [];
this.lookedOrganization = [];
this.changedOrganization = [];
this.changedOrganization2 = [];
},
getCheckedKeys() {
console.log('=========================getCheckedKeys')
console.log(this.$refs.tree.getCheckedKeys());
},
//添加子节点
append(data, node) {
console.log('=========================append')
console.log("data:", data);
console.log("node:", node);
if (data.children.length == 0) {
//let id = data.id + "add";
let statusValue = 0;
if (node.checked == true) {
statusValue = 1;
}
let req = {
id: data.id,
status: statusValue,
disabled: data.disabled
};
vm.GET("portal/scope/v1/administrative/children", req).then(res => {
if (res.code == "000000") {
let administrative = res.data.administrative;
//console.log(administrative);
data.children = administrative;
this.appendCheck(administrative, node.checked);
}
});
}
},
//子节点选中
appendCheck(administrative, checked) {
console.log('====================appendCheck')
//console.log(checked,administrative)
let checkList = [];
checkList = this.$refs.tree.getCheckedKeys();
if (checked) {
for (let i = 0; i < administrative.length; i++) {
checkList.push(administrative[i].id);
// console.log(checkList);
}
}
this.$nextTick(function() {
this.$refs.tree.setCheckedKeys(checkList);
});
},
//删除label节点 同步树结构
handleCloseTree(tag) {
console.log('=========================handleCloseTree')
if (this.status4Flag != 1) {
this.tagsRegion.splice(this.tagsRegion.indexOf(tag), 1);
this.setCheckedKeys(this.tagsRegion);
}
},
//通过key设置tree
setCheckedKeys(tagsRegion) {
console.log('=========================setCheckedKeys')
console.log(tagsRegion);
let treeKeyList = [];
for (let index = 0; index < tagsRegion.length; index++) {
treeKeyList[index] = tagsRegion[index].key;
}
console.log(treeKeyList);
this.$refs.tree.setCheckedKeys(treeKeyList);
}
}
}
</script>
<style lang="scss" >
.select-region-wrap {
.rim {
border: 1px solid #ddd;
}
}
</style>
此差异已折叠。
此差异已折叠。
<!--步骤-->
<template>
<div class="step-content-compontent">
<el-row class="step-content">
<el-col :span="14">
<el-steps :active="active" simple class>
<span class="step-num" v-bind:class="{ 'on-step': active==0 }">1</span>
<el-step title="基础信息"></el-step>
<span class="step-num" v-bind:class="{ 'on-step': active==1 }">2</span>
<el-step title="选择项目组件">3</el-step>
</el-steps>
</el-col>
<el-col :span="5" :offset="5">
<el-button v-if="!fished" size="small" type="primary" @click="nextStep">下一步</el-button>
<el-button v-if="fished" size="small" type="primary" @click="complete">完成</el-button>
</el-col>
</el-row>
</div>
</template>
<script>
export default {
props: {
active: {
type: Number,
default: 0,
},
fished: {
type: Boolean,
default: false,
}
},
data() {
return {
}
},
created() {},
methods: {
nextStep() {
this.$emit('nextStep')
},
complete() {
this.$emit('complete')
}
}
}
</script>
<style lang="scss">
.step-content-compontent {
background: #fff;
.step-content {
overflow: hidden;
height: 60px;
// margin-top: 66px;
padding: 15px 0 50px 0;
border-bottom: 1px solid #efefef;
.is-text {
display: none;
}
.el-steps--simple {
background: #fff;
}
.button-green {
color: #ffffff;
background: #449284;
border-color: #bfdad5;
border-radius: 2px;
}
.button-white {
color: #606266;
background: #ffffff;
border-color: #ecedf1;
border-radius: 2px;
}
.step-num {
display: block;
// margin-top: 1.5px;
font-size: 12px;
border: 1px solid #999 !important;
border-radius: 50%;
width: 25px;
height: 18px;
line-height: 16px;
text-align: center;
color: #999;
}
.el-step__title.is-wait {
color: #999;
}
.el-step__title.is-process {
color: #449284;
}
.is-finish {
color: #999 !important;
}
.on-step {
color: #449284;
border: 1px solid #449284 !important;
}
}
}
</style>
此差异已折叠。
......@@ -39,6 +39,11 @@ const reviewAccessManage = r => require.ensure([], () => r(require('../views/cme
const creditSendManage = r => require.ensure([], () => r(require('../views/cme/credit-send-manage.vue')), 'credit-send-manage')
const applyDetail = r => require.ensure([], () => r(require('../views/cme/apply-detail.vue')), 'apply-detail')
const templateManager = r => require.ensure([], () => r(require('../views/education/template-manager.vue')), 'ctemplate-manager')
const templateEditor = r => require.ensure([], () => r(require('../views/education/template-editor.vue')), 'template-editor')
const templateOpen = r => require.ensure([], () => r(require('../views/education/template-open.vue')), 'templateOpen')
const eduRole = r => require.ensure([], () => r(require('../views/education/edu-role.vue')), 'edu-role')
export default [{
path: '/',
component: App,
......@@ -159,6 +164,22 @@ export default [{
path: '/apply-detail',
component: applyDetail,
},
{
path: '/template-manager',
component: templateManager
},
{
path: '/template-editor',
component: templateEditor
},
{
path: '/template-open',
component: templateOpen
},
{
path: '/edu-role',
component: eduRole
},
// {
// path: '/followup',
// name: 'followUp',
......
......@@ -13,8 +13,8 @@ export const envConfig = {
// baseUrl: 'https://dev-sc.yunqueyi.com/',
// baseUrl: 'https://test1-sc.yunqueyi.com/',
// baseUrl: 'https://sc.yunqueyi.com/',
baseUrl: 'https://uat-sc.yunqueyi.com/',
apiUrl: 'https://uat-api.yunqueyi.com/',
baseUrl: 'https://dev-sc.yunqueyi.com/',
apiUrl: 'https://dev-api.yunqueyi.com/',
qiniuFileUrl: "https://uat-sc.yunqueyi.com/contents/admin/qiniu/token1",
qiniuResourceUrl: "https://test1-videos.yunqueyi.com",
qiniuImgUrl: "https://test1-file.yunqueyi.com",
......
......@@ -55,8 +55,8 @@ service.interceptors.request.use(config => {
if( process.env.BUILD_ENV == "development" ){ // 本地开发环境
// console.log('环境变量>>>> ', process.env.BUILD_ENV);
// config.headers['token'] = '29D71EAAB92E4580AFB16A8011BE7206';
// config.headers['token'] = '3167CD6495A14C14AEF28AB99F69984D';
config.headers['token'] = localStorage.getItem('storageToken')
config.headers['token'] = '5C743005596845EFA33D8BA3117E1CB1';
// config.headers['token'] = localStorage.getItem('storageToken')
}else{
config.headers['token'] = localStorage.getItem('storageToken')
}
......
......@@ -404,5 +404,21 @@ const vueFilter = {
toThousands:(value) => {
return (value || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
},
templateStatus: (value) => {
if (value == 1) {
return '待审核';
} else if (value == 2) {
return '已下架';
} else if (value == 3) {
return '已上架';
}
},
roleStatus: (value) => {
if (value == 0) {
return '未开通';
} else if (value == 1){
return '已开通';
}
}
}
export default vueFilter
\ No newline at end of file
<--教培项目授权-->
<template>
<div class="template-manager-wrap">
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond"></bread-crumb>
<div class="component-content screenSet" id="screenSet">
<div class="header-title">模板管理</div>
<el-row :gutter="30" class="row" type="flex" style="margin-top: 10px;">
<el-form ref="formInline" :model="formInline" label-width="75px" style="width:100%;">
<el-col :span="10">
<el-form-item label="手机号:">
<el-input v-model="formInline.phoneNumber" size="small" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="12" style="padding:0;text-align:right;padding-right:15px;">
<el-button type="primary" size="small" @click="searchList">查询</el-button>
<el-button type="default" size="small" @click="resetForm" style="margin-left:0;">重置</el-button>
</el-col>
</el-form>
</el-row>
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="name" label="模板名称" align="center"></el-table-column>
<el-table-column prop="phoneNumner" label="手机号" align="center"></el-table-column>
<el-table-column prop="jigou" label="所属机构" align="center"></el-table-column>
<el-table-column prop="diqu" label="所属地区" align="center"></el-table-column>
<el-table-column prop="projectStatus" label="状态" align="center">
<template slot-scope="scope">
<span>{{ scope.row.status | roleStatus }}</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" align="center">
<template slot-scope="scope">
<el-button
@click="changeStatus(scope.row,0)"
v-show="scope.row.status == 0"
type="primary"
size="small"
>开通权限</el-button>
<el-button
@click="changeStatus(scope.row,1)"
v-show="scope.row.status == 1"
type="primary"
size="small"
>关闭权限</el-button>
</template>
</el-table-column>
<div slot="empty">
<div class="table-empty">
<img src="../../assets/image/no-content1.png">
<p>没有搜索到该手机号,请重新搜索</p>
</div>
</div>
</el-table >
<div class="pagination">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="formInline.pageNo"
:page-sizes="[10, 30, 50, 100]"
:page-size="formInline.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalRows"
></el-pagination>
</div>
<dialog-compont :dialogObj="downObj" @confirm="downConfirm" @hide="downHide"></dialog-compont>
<dialog-compont :dialogObj="passObj" @confirm="passConfirm" @hide="passHide"></dialog-compont>
</div>
</div>
</template>
<script>
import BreadCrumb from "../../components/breadcrumb.vue";
import dialog from "../../components/education/template/dialog";
import { openLoading, closeLoading } from "../../utils/utils";
import * as commonUtil from "../../utils/utils";
let vm = null;
export default {
data() {
return {
curmbFirst: "教培项目",
curmbSecond: "模板管理",
formInline: {
phoneNumber: '',
pageSize: 15,
pageNo: 1
},
tableData: [
{
name: '王小二',
phoneNumner: '136638902819',
jigou: '尼山中心医院',
diqu: '山东省曲阜市角力中你山乡',
status: 0
},
{
name: '王小二',
phoneNumner: '136638902819',
jigou: '尼山中心医院',
diqu: '山东省曲阜市角力中你山乡',
status: 1
}
],
totalRows: 10,
deleteVisible: false, // 删除弹框显示与否
downObj: {
title: '确认要下架该项目模板吗?',
message: '下架后,用户则无法查看项目',
visible: false
},
passObj: {
title: '确认要通过该项目模板审核吗?',
message: '审核通过后,用户可在工作站查看或购买该项目模板',
visible: false
},
rejectObj: {
title: '确认要拒绝该项目模板吗?',
message: '拒绝后该项目模板将从列表中消失',
visible: false
},
idType: 1 //idType 1为内部项目,其他为外部项目
}
},
components: {
BreadCrumb,
dialogCompont: dialog
},
created() {
vm = this;
vm.idType = localStorage.getItem('storageIdType');
// vm.searchList();
},
mounte() {
commonUtil.resizeHeight();
},
methods: {
// 查询列表
searchList() {
let req = {};
req = vm.formInline;
openLoading(vm);
vm.GET("openTemplate/getOpenTemplateList", req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
// vm.tableData = res.data.data;
// vm.totalRows = res.data.totalRows;
// }
console.log('====================================');
console.log( res.data.data);
console.log('====================================');
}
});
},
// 重置搜索
resetForm() {},
// 改变状态
changeStatus(row,type) {
if (type == 1) {
vm.passObj.visible = true;
}
},
//删除
deleteRow() {
vm.deleteVisible = true;
},
// 删除项目
confirmDelete() {
alert('delete')
},
hideDeleteFrom() {
vm.deleteVisible = false;
},
// 显示操作按钮
showButton(row,type) {
// (1.草稿 2.未上架 3.审核中/待审核 4.已上架 5.已下架 6.已拒绝/未上架)
// 内部用户
let projectStatus = row.projectStatus;
let idType = row.idType;
let level = row.level;
let flag = false;
let typeStr = parseInt(type);
return true;
},
handleSizeChange() {},
handleCurrentChange() {},
// 跳转到模板详情
go() {
vm.$router.push("template-editor");
},
downConfirm() {},
downHide() {},
// 通过按钮
passConfirm() {
alert('通过');
},
passHide() {
alert('quxiao')
},
rejectConfirm() {},
rejectHide() {}
}
}
</script>
<style lang="scss" scoped>
.template-manager-wrap {
.component-content {
background: #fff;
padding: 10px;
.header-title {
padding: 10px 12px 10px 0;
font-size: 12px;
color: #449284;
border-bottom: 1px solid #efefef;
}
}
}
</style>
<template>
<div class="template-editor-wrap">
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond" :curmbThird="curmbThird"></bread-crumb>
<div class="add-content screenSet" id="screenSet">
<step-content
:active="active"
:fished="fished"
@nextStep="nextStep"
@complete="complete"
/>
<!-- 基础组件 -->
<base-message
ref="baseMessage"
v-if="active == 0 && formData"
:formData="formData"
:projectManger="projectManger"
/>
<!-- 选择项目组件 -->
<select-template v-if="active == 1" />
<!-- 选择行政区 -->
<!-- <select-region v-if="active == 1"></select-region> -->
<!-- 设定机构 -->
<!-- <set-Organization v-if="active == 0"></set-Organization> -->
</div>
</div>
</template>
<script>
import BreadCrumb from "../../components/breadcrumb.vue";
import stepContent from "../../components/education/template/stepContent";
import baseMessage from "../../components/education/template/baseMessage";
import selectTemplate from "../../components/education/template/selectTemplate";
import selectRegion from "../../components/education/template/selectRegion";
import setOrganization from "../../components/education/template/setOrganization";
export default {
data() {
return {
curmbFirst: "教培项目",
curmbSecond: "模板管理",
curmbThird: '新建项目模板',
active: 0,
fished: false,
projectManger: false,
formData: {
projectName: "",
projectBegintime: "",
projectEndtime: "",
projectIntro: "",
type: 1,
useTime: "",
xueke: "",
attachmentUrl1: "",
attachmentUrl2: "",
attachmentUrl3: "",
attachmentMore1: {},
attachmentMore2: {},
scopeType: 0,
organizationName: "",
organizationNameList: [''],
sendOption: 1,
receiveOption: 1,
visibleFlag: 1,
learnableFlag: 2,
authorityType: 1,
allowLearn: 2,
richContent: ''
},
formTemplate: {
component: [],
configure: 2,
certificate: ""
}
}
},
components: {
BreadCrumb,
stepContent,
baseMessage,
selectTemplate,
selectRegion,
setOrganization
},
created() {},
methods: {
// 下一步
nextStep() {
// let flag = this.$refs.baseMessage.nextStep();
// if (!flag) {
// return;
// }
this.active++;
if (this.active == 1) {
this.fished = true;
}
},
complete() {
console.log('完成');
}
}
}
</script>
<style lang="scss" scoped>
.template-editor-wrap {
.add-content {
background: #fff;
}
}
</style>
此差异已折叠。
<template>
<div class="template-open-wrap">
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond" :curmbThird="curmbThird"></bread-crumb>
<div class="add-content screenSet" id="screenSet" style="pos">
<el-row class="step-content">
<el-col :span="14">
<el-steps :active="active" simple class>
<span class="step-num" v-bind:class="{ 'on-step': active==0 }">1</span>
<el-step title="选择项目模板">1</el-step>
<span class="step-num" v-bind:class="{ 'on-step': active==1 }">2</span>
<el-step title="填写项目信息">2</el-step>
<span class="step-num" v-bind:class="{ 'on-step': active==2 }">3</span>
<el-step title="选择学员范围">3</el-step>
</el-steps>
</el-col>
<el-col :span="5" :offset="5">
<el-button v-if="active!==2" size="small" type="primary" @click="nextStep">下一步</el-button>
<el-button v-if="active==2" size="small" type="primary" @click="complete">完成</el-button>
</el-col>
</el-row>
<div v-if="active == 0" class="tpl-main">
<template-list></template-list>
</div>
<!-- 模板列表 -->
<!-- 填写项目信息-->
<base-message
ref="baseMessage"
v-if="active == 1 && formData"
:formData="formData"
:projectManger="projectManger"
/>
<!-- 选择学员 -->
<div class="second-step" v-else-if="active === 2">
<el-tabs v-model="activeName" @tab-click="handleClickTabs">
<el-tab-pane label="设定行政范围" name="first">
<select-region></select-region>
</el-tab-pane>
<el-tab-pane label="设定机构" name="second">
<set-Organization></set-Organization>
</el-tab-pane>
</el-tabs>
</div>
</div>
</div>
</template>
<script>
import BreadCrumb from "../../components/breadcrumb.vue";
import baseMessage from "../../components/education/template/baseMessage";
import selectTemplate from "../../components/education/template/selectTemplate";
import selectRegion from "../../components/education/template/selectRegion";
import setOrganization from "../../components/education/template/setOrganization";
import templateList from "../../components/education/template/templateList";
import { openLoading, closeLoading } from "../../utils/utils";
import * as commonUtil from "../../utils/utils";
export default {
data() {
return {
curmbFirst: "教培项目",
curmbSecond: "项目管理",
curmbThird: '发起项目',
active: 0,
fished: false,
projectManger: true,
formData: {
projectName: "",
projectBegintime: "",
projectEndtime: "",
projectIntro: "",
type: 1,
useTime: "",
xueke: "",
attachmentUrl1: "",
attachmentUrl2: "",
attachmentUrl3: "",
attachmentMore1: {},
attachmentMore2: {},
scopeType: 0,
organizationName: "",
organizationNameList: [''],
sendOption: 1,
receiveOption: 1,
visibleFlag: 1,
learnableFlag: 2,
authorityType: 1,
allowLearn: 2,
richContent: ''
},
formTemplate: {
component: [],
configure: 2,
certificate: ""
},
activeName: "first"
}
},
components: {
BreadCrumb,
baseMessage,
selectTemplate,
selectRegion,
setOrganization,
templateList
},
created() {},
mounted() {
commonUtil.resizeHeight();
},
methods: {
// 下一步
nextStep() {
// let flag = this.$refs.baseMessage.nextStep();
// if (!flag) {
// return;
// }
this.active++;
if (this.active == 1) {
this.fished = true;
}
},
complete() {
console.log('完成');
},
//切换tabs
handleClickTabs(tab, event) {
// this.activeName = tab.name;
}
}
}
</script>
<style lang="scss">
.template-open-wrap {
.step-content {
overflow: hidden;
height: 60px;
// margin-top: 66px;
padding: 15px 0 50px 0;
border-bottom: 1px solid #efefef;
background: #fff;
.is-text {
display: none;
}
.el-steps--simple {
background: #fff;
}
.button-green {
color: #ffffff;
background: #449284;
border-color: #bfdad5;
border-radius: 2px;
}
.button-white {
color: #606266;
background: #ffffff;
border-color: #ecedf1;
border-radius: 2px;
}
.step-num {
display: block;
// margin-top: 1.5px;
font-size: 12px;
border: 1px solid #999 !important;
border-radius: 50%;
width: 25px;
height: 18px;
line-height: 16px;
text-align: center;
color: #999;
}
.el-step__title.is-wait {
color: #999;
}
.el-step__title.is-process {
color: #449284;
}
.is-finish {
color: #999 !important;
}
.on-step {
color: #449284;
border: 1px solid #449284 !important;
}
}
.add-content {
background: #fff;
}
.second-step {
margin: 10px 0 0 20px;
.area-p {
margin-bottom: 15px;
font-size: 14px;
}
.span_ecology {
line-height: 45px;
margin-left: 8px;
}
.dialog-p {
text-align: center;
span {
color: #449284;
}
}
//隐藏树展开
.table-empty {
img {
width: 100px;
}
p {
margin-top: -50px;
}
}
.el-tree-node__expand-icon {
display: none;
}
.department {
margin-top: 20px;
border: 1px solid #dddddd;
}
.el-tabs__nav-wrap::after {
display: none;
}
.el-tabs__active-bar {
display: none;
}
#tab-first,
#tab-second,
#tab-third {
padding-right: 0px;
}
#tab-first::after {
color: #c7cbd2;
margin-left: 20px;
content: "•";
}
.el-tabs__item.is-active {
color: #fff;
}
.el-tag {
margin: 0 10px 10px 0;
border: 1.3px solid #48a8fe;
color: #1e92fe;
background-color: #e7f6fe;
.el-icon-close {
width: 13px;
height: 13px;
line-height: 13px;
font-size: 12px;
background-color: #0486fe;
border-radius: 50%;
color: #d4edfe;
}
}
.down-button {
margin-left: 10px;
}
.down-button-close {
margin-left: 100px;
float: left;
}
.dialog-success {
p {
text-align: center;
.upload-text{
color: #449284;
}
}
}
.dialog-fail {
.fail-type {
p {
margin-top: 10px;
}
.fail-num {
color: #db3f52;
}
.fail-notice {
color: #e3e3e3;
font-size: 13px;
}
.fail-link {
text-align: center;
color: #449284;
cursor: pointer;
}
}
}
}
.tpl-main {
padding-top: 60px;
}
}
</style>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<style type="text/css">
*{color: #838383;margin: 0;padding: 0}
html,body {font-size: 12px;overflow: hidden; }
.content{padding:5px 0 0 15px;}
input{width:210px;height:21px;line-height:21px;margin-left: 4px;}
</style>
</head>
<body>
<div class="content">
<span><var id="lang_input_anchorName"></var></span><input id="anchorName" value="" />
</div>
<script type="text/javascript" src="../internal.js"></script>
<script type="text/javascript">
var anchorInput = $G('anchorName'),
node = editor.selection.getRange().getClosedNode();
if(node && node.tagName == 'IMG' && (node = node.getAttribute('anchorname'))){
anchorInput.value = node;
}
anchorInput.onkeydown = function(evt){
evt = evt || window.event;
if(evt.keyCode == 13){
editor.execCommand('anchor', anchorInput.value);
dialog.close();
domUtils.preventDefault(evt)
}
};
dialog.onok = function (){
editor.execCommand('anchor', anchorInput.value);
dialog.close();
};
$focus(anchorInput);
</script>
</body>
</html>
\ No newline at end of file
此差异已折叠。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>ueditor图片对话框</title>
<script type="text/javascript" src="../internal.js"></script>
<!-- jquery -->
<script type="text/javascript" src="../../third-party/jquery-1.10.2.min.js"></script>
<!-- webuploader -->
<script src="../../third-party/webuploader/webuploader.min.js"></script>
<link rel="stylesheet" type="text/css" href="../../third-party/webuploader/webuploader.css">
<!-- attachment dialog -->
<link rel="stylesheet" href="attachment.css" type="text/css" />
</head>
<body>
<div class="wrapper">
<div id="tabhead" class="tabhead">
<span class="tab focus" data-content-id="upload"><var id="lang_tab_upload"></var></span>
<span class="tab" data-content-id="online"><var id="lang_tab_online"></var></span>
</div>
<div id="tabbody" class="tabbody">
<!-- 上传图片 -->
<div id="upload" class="panel focus">
<div id="queueList" class="queueList">
<div class="statusBar element-invisible">
<div class="progress">
<span class="text">0%</span>
<span class="percentage"></span>
</div><div class="info"></div>
<div class="btns">
<div id="filePickerBtn"></div>
<div class="uploadBtn"><var id="lang_start_upload"></var></div>
</div>
</div>
<div id="dndArea" class="placeholder">
<div class="filePickerContainer">
<div id="filePickerReady"></div>
</div>
</div>
<ul class="filelist element-invisible">
<li id="filePickerBlock" class="filePickerBlock"></li>
</ul>
</div>
</div>
<!-- 在线图片 -->
<div id="online" class="panel">
<div id="fileList"><var id="lang_imgLoading"></var></div>
</div>
</div>
</div>
<script type="text/javascript" src="attachment.js"></script>
</body>
</html>
\ No newline at end of file
此差异已折叠。
.wrapper{ width: 424px;margin: 10px auto; zoom:1;position: relative}
.tabbody{height:225px;}
.tabbody .panel { position: absolute;width:100%; height:100%;background: #fff; display: none;}
.tabbody .focus { display: block;}
body{font-size: 12px;color: #888;overflow: hidden;}
input,label{vertical-align:middle}
.clear{clear: both;}
.pl{padding-left: 18px;padding-left: 23px\9;}
#imageList {width: 420px;height: 215px;margin-top: 10px;overflow: hidden;overflow-y: auto;}
#imageList div {float: left;width: 100px;height: 95px;margin: 5px 10px;}
#imageList img {cursor: pointer;border: 2px solid white;}
.bgarea{margin: 10px;padding: 5px;height: 84%;border: 1px solid #A8A297;}
.content div{margin: 10px 0 10px 5px;}
.content .iptradio{margin: 0px 5px 5px 0px;}
.txt{width:280px;}
.wrapcolor{height: 19px;}
div.color{float: left;margin: 0;}
#colorPicker{width: 17px;height: 17px;border: 1px solid #CCC;display: inline-block;border-radius: 3px;box-shadow: 2px 2px 5px #D3D6DA;margin: 0;float: left;}
div.alignment,#custom{margin-left: 23px;margin-left: 28px\9;}
#custom input{height: 15px;min-height: 15px;width:20px;}
#repeatType{width:100px;}
/* 图片管理样式 */
#imgManager {
width: 100%;
height: 225px;
}
#imgManager #imageList{
width: 100%;
overflow-x: hidden;
overflow-y: auto;
}
#imgManager ul {
display: block;
list-style: none;
margin: 0;
padding: 0;
}
#imgManager li {
float: left;
display: block;
list-style: none;
padding: 0;
width: 113px;
height: 113px;
margin: 9px 0 0 19px;
background-color: #eee;
overflow: hidden;
cursor: pointer;
position: relative;
}
#imgManager li.clearFloat {
float: none;
clear: both;
display: block;
width:0;
height:0;
margin: 0;
padding: 0;
}
#imgManager li img {
cursor: pointer;
}
#imgManager li .icon {
cursor: pointer;
width: 113px;
height: 113px;
position: absolute;
top: 0;
left: 0;
z-index: 2;
border: 0;
background-repeat: no-repeat;
}
#imgManager li .icon:hover {
width: 107px;
height: 107px;
border: 3px solid #1094fa;
}
#imgManager li.selected .icon {
background-image: url(images/success.png);
background-position: 75px 75px;
}
#imgManager li.selected .icon:hover {
width: 107px;
height: 107px;
border: 3px solid #1094fa;
background-position: 72px 72px;
}
\ No newline at end of file
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<script type="text/javascript" src="../internal.js"></script>
<link rel="stylesheet" type="text/css" href="background.css">
</head>
<body>
<div id="bg_container" class="wrapper">
<div id="tabHeads" class="tabhead">
<span class="focus" data-content-id="normal"><var id="lang_background_normal"></var></span>
<span class="" data-content-id="imgManager"><var id="lang_background_local"></var></span>
</div>
<div id="tabBodys" class="tabbody">
<div id="normal" class="panel focus">
<fieldset class="bgarea">
<legend><var id="lang_background_set"></var></legend>
<div class="content">
<div>
<label><input id="nocolorRadio" class="iptradio" type="radio" name="t" value="none" checked="checked"><var id="lang_background_none"></var></label>
<label><input id="coloredRadio" class="iptradio" type="radio" name="t" value="color"><var id="lang_background_colored"></var></label>
</div>
<div class="wrapcolor pl">
<div class="color">
<var id="lang_background_color"></var>:
</div>
<div id="colorPicker"></div>
<div class="clear"></div>
</div>
<div class="wrapcolor pl">
<label><var id="lang_background_netimg"></var>:</label><input class="txt" type="text" id="url">
</div>
<div id="alignment" class="alignment">
<var id="lang_background_align"></var>:<select id="repeatType">
<option value="center"></option>
<option value="repeat-x"></option>
<option value="repeat-y"></option>
<option value="repeat"></option>
<option value="self"></option>
</select>
</div>
<div id="custom" >
<var id="lang_background_position"></var>:x:<input type="text" size="1" id="x" maxlength="4" value="0">px&nbsp;&nbsp;y:<input type="text" size="1" id="y" maxlength="4" value="0">px
</div>
</div>
</fieldset>
</div>
<div id="imgManager" class="panel">
<div id="imageList" style=""></div>
</div>
</div>
</div>
<script type="text/javascript" src="background.js"></script>
</body>
</html>
此差异已折叠。
/*
* 图表配置文件
* */
//不同类型的配置
var typeConfig = [
{
chart: {
type: 'line'
},
plotOptions: {
line: {
dataLabels: {
enabled: false
},
enableMouseTracking: true
}
}
}, {
chart: {
type: 'line'
},
plotOptions: {
line: {
dataLabels: {
enabled: true
},
enableMouseTracking: false
}
}
}, {
chart: {
type: 'area'
}
}, {
chart: {
type: 'bar'
}
}, {
chart: {
type: 'column'
}
}, {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
color: '#000000',
connectorColor: '#000000',
formatter: function() {
return '<b>'+ this.point.name +'</b>: '+ ( Math.round( this.point.percentage*100 ) / 100 ) +' %';
}
}
}
}
}
];
html, body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow-x: hidden;
}
.main {
width: 100%;
overflow: hidden;
}
.table-view {
height: 100%;
float: left;
margin: 20px;
width: 40%;
}
.table-view .table-container {
width: 100%;
margin-bottom: 50px;
overflow: scroll;
}
.table-view th {
padding: 5px 10px;
background-color: #F7F7F7;
}
.table-view td {
width: 50px;
text-align: center;
padding:0;
}
.table-container input {
width: 40px;
padding: 5px;
border: none;
outline: none;
}
.table-view caption {
font-size: 18px;
text-align: left;
}
.charts-view {
/*margin-left: 49%!important;*/
width: 50%;
margin-left: 49%;
height: 400px;
}
.charts-container {
border-left: 1px solid #c3c3c3;
}
.charts-format fieldset {
padding-left: 20px;
margin-bottom: 50px;
}
.charts-format legend {
padding-left: 10px;
padding-right: 10px;
}
.format-item-container {
padding: 20px;
}
.format-item-container label {
display: block;
margin: 10px 0;
}
.charts-format .data-item {
border: 1px solid black;
outline: none;
padding: 2px 3px;
}
/* 图表类型 */
.charts-type {
margin-top: 50px;
height: 300px;
}
.scroll-view {
border: 1px solid #c3c3c3;
border-left: none;
border-right: none;
overflow: hidden;
}
.scroll-container {
margin: 20px;
width: 100%;
overflow: hidden;
}
.scroll-bed {
width: 10000px;
_margin-top: 20px;
-webkit-transition: margin-left .5s ease;
-moz-transition: margin-left .5s ease;
transition: margin-left .5s ease;
}
.view-box {
display: inline-block;
*display: inline;
*zoom: 1;
margin-right: 20px;
border: 2px solid white;
line-height: 0;
overflow: hidden;
cursor: pointer;
}
.view-box img {
border: 1px solid #cecece;
}
.view-box.selected {
border-color: #7274A7;
}
.button-container {
margin-bottom: 20px;
text-align: center;
}
.button-container a {
display: inline-block;
width: 100px;
height: 25px;
line-height: 25px;
border: 1px solid #c2ccd1;
margin-right: 30px;
text-decoration: none;
color: black;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
}
.button-container a:HOVER {
background: #fcfcfc;
}
.button-container a:ACTIVE {
border-top-color: #c2ccd1;
box-shadow:inset 0 5px 4px -4px rgba(49, 49, 64, 0.1);
}
.edui-charts-not-data {
height: 100px;
line-height: 100px;
text-align: center;
}
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<title>chart</title>
<meta chartset="utf-8">
<link rel="stylesheet" type="text/css" href="charts.css">
<script type="text/javascript" src="../internal.js"></script>
</head>
<body>
<div class="main">
<div class="table-view">
<h3><var id="lang_data_source"></var></h3>
<div id="tableContainer" class="table-container"></div>
<h3><var id="lang_chart_format"></var></h3>
<form name="data-form">
<div class="charts-format">
<fieldset>
<legend><var id="lang_data_align"></var></legend>
<div class="format-item-container">
<label>
<input type="radio" class="format-ctrl not-pie-item" name="charts-format" value="1" checked="checked">
<var id="lang_chart_align_same"></var>
</label>
<label>
<input type="radio" class="format-ctrl not-pie-item" name="charts-format" value="-1">
<var id="lang_chart_align_reverse"></var>
</label>
<br>
</div>
</fieldset>
<fieldset>
<legend><var id="lang_chart_title"></var></legend>
<div class="format-item-container">
<label>
<var id="lang_chart_main_title"></var><input type="text" name="title" class="data-item">
</label>
<label>
<var id="lang_chart_sub_title"></var><input type="text" name="sub-title" class="data-item not-pie-item">
</label>
<label>
<var id="lang_chart_x_title"></var><input type="text" name="x-title" class="data-item not-pie-item">
</label>
<label>
<var id="lang_chart_y_title"></var><input type="text" name="y-title" class="data-item not-pie-item">
</label>
</div>
</fieldset>
<fieldset>
<legend><var id="lang_chart_tip"></var></legend>
<div class="format-item-container">
<label>
<var id="lang_cahrt_tip_prefix"></var>
<input type="text" id="tipInput" name="tip" class="data-item" disabled="disabled">
</label>
<p><var id="lang_cahrt_tip_description"></var></p>
</div>
</fieldset>
<fieldset>
<legend><var id="lang_chart_data_unit"></var></legend>
<div class="format-item-container">
<label><var id="lang_chart_data_unit_title"></var><input type="text" name="unit" class="data-item"></label>
<p><var id="lang_chart_data_unit_description"></var></p>
</div>
</fieldset>
</div>
</form>
</div>
<div class="charts-view">
<div id="chartsContainer" class="charts-container"></div>
<div id="chartsType" class="charts-type">
<h3><var id="lang_chart_type"></var></h3>
<div class="scroll-view">
<div class="scroll-container">
<div id="scrollBed" class="scroll-bed"></div>
</div>
<div id="buttonContainer" class="button-container">
<a href="#" data-title="prev"><var id="lang_prev_btn"></var></a>
<a href="#" data-title="next"><var id="lang_next_btn"></var></a>
</div>
</div>
</div>
</div>
</div>
<script src="../../third-party/jquery-1.10.2.min.js"></script>
<script src="../../third-party/highcharts/highcharts.js"></script>
<script src="chart.config.js"></script>
<script src="charts.js"></script>
</body>
</html>
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册