This commit is contained in:
xuyucheng 2022-10-21 14:00:25 +08:00
parent 42820bdc53
commit 466b2e38d9
15 changed files with 314 additions and 14932 deletions

14730
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -485,4 +485,25 @@ input[type="number"] {
.el-cascader-menu{
border: none;
}
.my-editor {
width: 100%;
min-height: 50px;
padding: 10px 0;
background: #2d2d2d;
color: #ccc;
font-family: Fira code, Fira Mono, Consolas, Menlo, Courier, monospace;
font-size: 14px;
line-height: 1.5;
}
// optional
.prism-editor__textarea:focus {
outline: none;
}
// not required:
.height-300 {
height: 300px;
}

View File

@ -112,6 +112,11 @@ export default {
title: "宏观数据",
content: "",
},
{
id: "3-3",
title: "指标仓库",
content: "indicators"
}
// {
// id: "3-3",
// title: "",
@ -143,6 +148,13 @@ export default {
id: "4",
title: "评级管理",
icon: "el-icon-document",
children: [
{
id: "4-1",
title: "评级打分",
content: "rating",
},
]
},
{
id: "5",

View File

@ -296,10 +296,10 @@ export default {
v.status = 0;
request
.get(v.url, { cname: this.cname })
.then((res) => {
.then(() => {
v.status = 1;
})
.catch((err) => {
.catch(() => {
v.status = -1;
});
});

View File

@ -56,7 +56,7 @@
:labelStyle="{
'font-size': '14px',
padding: '10px 0',
width: '150px',
'min-width': '120px',
}"
:contentStyle="{
color: 'rgb(255,255,255,0.87)',
@ -81,7 +81,7 @@ export default {
return {
visible: false,
data: {
企业ID: "",
企业ID:"",
企业名称: "",
企业类型: "",
经营状态: "",
@ -96,7 +96,6 @@ export default {
经营范围: "",
},
form: {
企业ID: "",
企业名称: "",
企业类型: "",
经营状态: "",
@ -163,6 +162,7 @@ export default {
openEdit() {
this.visible = true;
Object.assign(this.form, this.data);
delete this.form['企业ID']
},
remove() {
@ -180,11 +180,12 @@ export default {
},
submit() {
const obj = {
body: this.form,
cid: this.$store.state.tabsKey,
};
request
.post(
"/data/manage/company/basic/business_info/edit",
Object.assign(this.form, { cid: this.$store.state.tabsKey })
)
.post("/data/manage/company/basic/business_info/edit", obj)
.then((res) => {
this.$notify({
title: "编辑",

View File

@ -689,6 +689,7 @@ export default {
request
.get(`/data/manage/company/${path}/auto_update`, {
cid: this.$store.state.tabsKey,
cname: ""
})
.then((res) => {
this.$notify({

View File

@ -20,34 +20,34 @@
<el-input v-model="data.func_name" size="small"></el-input>
</el-form-item>
<el-form-item label="标签">
<el-tag v-for="(item, index) in data.tags" :key="index" closable @close="handleCloseTag(index)">{{
item.tag_name
}}</el-tag>
<fecr-tag-manager :tagCategory="'func'" :selectValue.sync="data.tags" @handleSelectData="handleSelectData"></fecr-tag-manager>
<el-tag
v-for="(item, index) in data.tags"
:key="index"
closable
@close="handleCloseTag(index)"
>{{ item.tag_name }}</el-tag
>
<fecr-tag-manager
:tagCategory="'func'"
:selectValue.sync="data.tags"
@handleSelectData="handleSelectData"
></fecr-tag-manager>
</el-form-item>
<el-form-item label="说明">
<editor
height="200"
width="100%"
ref="editor"
:content="data.describe"
<prism-editor
class="my-editor"
v-model="data.describe"
:options="{
editOption,
}"
/>
:highlight="highlighter"
:line-numbers="true"
></prism-editor>
</el-form-item>
<el-form-item label="方法">
<editor
height="200"
width="100%"
ref="editor"
:content="data.method"
<prism-editor
class="my-editor"
v-model="data.method"
:options="editOption"
:lang="'python'"
@init="editorInit"
></editor>
:highlight="highlighter"
:line-numbers="true"
></prism-editor>
</el-form-item>
<el-form-item label="参数">
<el-row
@ -219,18 +219,23 @@
<script>
import request from "@/api/request";
import Editor from "vue2-ace-editor";
import FecrDialog from "@/components/FecrDialog";
import FecrTagManager from "@/components/FecrTagManager";
import { PrismEditor } from "vue-prism-editor";
import "vue-prism-editor/dist/prismeditor.min.css";
import { highlight, languages } from "prismjs/components/prism-core";
import "prismjs/components/prism-clike";
import "prismjs/components/prism-javascript";
import "prismjs/themes/prism-tomorrow.css";
export default {
components: { Editor, FecrDialog,FecrTagManager },
components: { FecrDialog, FecrTagManager, PrismEditor },
props: {
visible: [Boolean],
data: [Object, Array],
},
data() {
return {
calibration: "",
calibration: "",
editOption: {
enableBasicAutocompletion: true,
enableSnippets: true,
@ -244,6 +249,10 @@ export default {
},
methods: {
highlighter(code) {
return highlight(code, languages.js); //returns html
},
cancel() {
this.visible = false;
this.calibration = "";
@ -286,7 +295,7 @@ export default {
}
},
handleSelectData(val){
handleSelectData(val) {
this.data.tags = val.map((item) => {
return {
tag_id: item.tag_id,
@ -295,8 +304,8 @@ export default {
});
},
handleCloseTag(index){
this.data.tags.splice(index,1)
handleCloseTag(index) {
this.data.tags.splice(index, 1);
},
lock() {
@ -313,13 +322,6 @@ export default {
submit() {
this.$emit("submit");
},
editorInit() {
require("brace/ext/language_tools");
require("brace/mode/python");
require("brace/snippets/python");
require("brace/theme/eclipse");
},
},
watch: {
@ -330,7 +332,6 @@ export default {
immediate: true,
deep: true,
},
},
};
</script>
@ -387,4 +388,24 @@ export default {
.level-input {
@include flex(center);
}
.my-editor {
width: 100%;
min-height: 500px;
background: #2d2d2d;
color: #ccc;
font-family: Fira code, Fira Mono, Consolas, Menlo, Courier, monospace;
font-size: 14px;
line-height: 1.5;
}
// optional
.prism-editor__textarea:focus {
outline: none;
}
// not required:
.height-300 {
height: 300px;
}
</style>

View File

@ -30,25 +30,14 @@
<el-row class="middle">{{ data.describe }}</el-row>
</el-descriptions-item>
<el-descriptions-item label="方法"
><editor
height="100"
width="100%"
ref="editor"
:content="data.method"
>
<prism-editor
class="my-editor"
v-model="data.method"
:options="{
enableBasicAutocompletion: true,
enableSnippets: true,
enableLiveAutocompletion: true,
tabSize: 2,
fontSize: 14,
readOnly: true,
showPrintMargin: false, //线
}"
:lang="'python'"
@init="editorInit"
></editor
></el-descriptions-item>
:highlight="highlighter"
:line-numbers="true"
></prism-editor>
</el-descriptions-item>
<el-descriptions-item label="参数">
<fecr-table
:data="data.params"
@ -62,11 +51,16 @@
</template>
<script>
import Editor from "vue2-ace-editor";
import { PrismEditor } from "vue-prism-editor";
import "vue-prism-editor/dist/prismeditor.min.css";
import { highlight, languages } from "prismjs/components/prism-core";
import "prismjs/components/prism-clike";
import "prismjs/components/prism-javascript";
import "prismjs/themes/prism-tomorrow.css";
import FecrTable from "@/components/FecrTable";
import FecrDialog from "@/components/FecrDialog";
export default {
components: { Editor, FecrTable, FecrDialog },
components: { PrismEditor,FecrTable, FecrDialog },
props: {
visible: [Boolean],
data: [Object, Array],
@ -76,11 +70,8 @@ export default {
},
methods: {
editorInit() {
require("brace/ext/language_tools");
require("brace/mode/python");
require("brace/snippets/python");
require("brace/theme/eclipse");
highlighter(code) {
return highlight(code, languages.js); //returns html
},
},
};
@ -89,4 +80,24 @@ export default {
.middle {
padding: 20px;
}
.my-editor {
width: 100%;
min-height: 500px;
background: #2d2d2d;
color: #ccc;
font-family: Fira code, Fira Mono, Consolas, Menlo, Courier, monospace;
font-size: 14px;
line-height: 1.5;
}
// optional
.prism-editor__textarea:focus {
outline: none;
}
// not required:
.height-300 {
height: 300px;
}
</style>

View File

@ -239,7 +239,6 @@
<script>
import request from "api/request";
import FecrDialog from "@/components/FecrDialog";
import { PrismEditor } from "vue-prism-editor";
import "vue-prism-editor/dist/prismeditor.min.css";

View File

@ -34,30 +34,20 @@
></fecr-tag-manager>
</el-form-item>
<el-form-item label="地址">
<editor
height="40"
width="100%"
ref="editor"
:content="data.address"
<prism-editor
class="my-editor"
v-model="data.address"
:options="{
editOption,
}"
:lang="'python'"
@init="editorInit"
></editor>
:highlight="highlighter"
:line-numbers="true"
></prism-editor>
</el-form-item>
<el-form-item label="说明">
<editor
height="200"
width="100%"
ref="editor"
:content="data.describe"
<prism-editor
class="my-editor"
v-model="data.describe"
:options="{
editOption,
}"
/>
:highlight="highlighter"
:line-numbers="true"
></prism-editor>
</el-form-item>
<el-form-item label="参数">
@ -158,11 +148,16 @@
<script>
import request from "@/api/request";
import Editor from "vue2-ace-editor";
import { PrismEditor } from "vue-prism-editor";
import "vue-prism-editor/dist/prismeditor.min.css";
import { highlight, languages } from "prismjs/components/prism-core";
import "prismjs/components/prism-clike";
import "prismjs/components/prism-javascript";
import "prismjs/themes/prism-tomorrow.css";
import FecrDialog from "@/components/FecrDialog";
import FecrTagManager from "@/components/FecrTagManager";
export default {
components: { Editor, FecrDialog,FecrTagManager },
components: { PrismEditor, FecrDialog, FecrTagManager },
props: {
visible: [Boolean],
data: [Object, Array],
@ -252,11 +247,8 @@ export default {
this.$emit("submit");
},
editorInit() {
require("brace/ext/language_tools");
require("brace/mode/python");
require("brace/snippets/python");
require("brace/theme/eclipse");
highlighter(code) {
return highlight(code, languages.js); //returns html
},
},

View File

@ -28,25 +28,13 @@
}}</el-tag>
</el-descriptions-item>
<el-descriptions-item label="地址"
><editor
height="40"
width="100%"
ref="editor"
:content="data.address"
>
<prism-editor
class="my-editor"
v-model="data.address"
:options="{
enableBasicAutocompletion: true,
enableSnippets: true,
enableLiveAutocompletion: true,
tabSize: 2,
fontSize: 14,
readOnly: true,
showPrintMargin: false, //线
}"
:lang="'python'"
@init="editorInit"
></editor
></el-descriptions-item>
:highlight="highlighter"
:line-numbers="true"
></prism-editor></el-descriptions-item>
<el-descriptions-item label="说明">
<el-row class="middle">{{ data.describe }}</el-row>
</el-descriptions-item>
@ -63,11 +51,16 @@
</template>
<script>
import Editor from "vue2-ace-editor";
import { PrismEditor } from "vue-prism-editor";
import "vue-prism-editor/dist/prismeditor.min.css";
import { highlight, languages } from "prismjs/components/prism-core";
import "prismjs/components/prism-clike";
import "prismjs/components/prism-javascript";
import "prismjs/themes/prism-tomorrow.css";
import FecrTable from "@/components/FecrTable";
import FecrDialog from "@/components/FecrDialog";
export default {
components: { Editor, FecrTable, FecrDialog },
components: { PrismEditor, FecrTable, FecrDialog },
props: {
visible: [Boolean],
data: [Object, Array],
@ -77,11 +70,8 @@ export default {
},
methods: {
editorInit() {
require("brace/ext/language_tools");
require("brace/mode/python");
require("brace/snippets/python");
require("brace/theme/chrome");
highlighter(code) {
return highlight(code, languages.js); //returns html
},
},
};

View File

@ -51,27 +51,25 @@
></fecr-tag-manager>
</el-form-item>
<el-form-item label="题目描述">
<editor
height="100"
width="100%"
:content="data.describe"
<prism-editor
class="my-editor"
v-model="data.describe"
:options="options"
></editor>
:highlight="highlighter"
:line-numbers="true"
></prism-editor>
</el-form-item>
<el-form-item
label="输入设置"
v-if="data.question_type === '自定义问题'"
>
<el-button
type="primary"
icon="el-icon-plus"
circle
size="small"
style="margin-bottom: 20px"
@click="data.input_setting.push({ input: '', type: '', mark: '' })"
></el-button
>
<el-button
type="primary"
icon="el-icon-plus"
circle
size="small"
style="margin-bottom: 20px"
@click="data.input_setting.push({ input: '', type: '', mark: '' })"
></el-button>
<div class="box">
<el-row type="flex">
<el-col
@ -177,13 +175,13 @@
</el-row>
<el-row type="flex" v-if="data.question_type.includes('选题')">
<span class="title">描述</span>
<editor
height="100"
width="100%"
:content="item.describe"
v-model="item.describe"
:options="options"
/>
<prism-editor
class="my-editor"
v-model="data.describe"
:highlight="highlighter"
:line-numbers="true"
></prism-editor>
</el-row>
</el-row>
</el-row>
@ -318,31 +316,23 @@
class="middle"
>
<el-row>
<editor
height="200"
width="100%"
ref="editor"
:content="data.decision_setting.assigned"
<prism-editor
class="my-editor"
v-model="data.decision_setting.assigned"
:options="options"
:lang="'python'"
@init="editorInit"
/>
:highlight="highlighter"
:line-numbers="true"
></prism-editor>
</el-row>
</el-row>
<el-row v-if="data.question_type === '自定义问题'" class="middle">
<el-row>
<editor
height="200"
width="100%"
ref="editor"
:content="data.describe"
<prism-editor
class="my-editor"
v-model="data.describe"
:options="options"
:lang="'python'"
@init="editorInit"
/>
:highlight="highlighter"
:line-numbers="true"
></prism-editor>
</el-row>
</el-row>
</el-form-item>
@ -355,11 +345,16 @@
import request from "@/api/request";
import radio from "@/assets/img/radio.svg";
import radioSelect from "@/assets/img/radio-select.svg";
import Editor from "vue2-ace-editor";
import { PrismEditor } from "vue-prism-editor";
import "vue-prism-editor/dist/prismeditor.min.css";
import { highlight, languages } from "prismjs/components/prism-core";
import "prismjs/components/prism-clike";
import "prismjs/components/prism-javascript";
import "prismjs/themes/prism-tomorrow.css";
import FecrScore from "@/components/FecrScore";
import FecrTagManager from "@/components/FecrTagManager";
export default {
components: { Editor, FecrScore, FecrTagManager },
components: { PrismEditor, FecrScore, FecrTagManager },
data() {
return {
data: {
@ -436,7 +431,7 @@ export default {
request
.get("/rating/question/operate_question", {
qid: this.$store.state.tabsKey,
usage:"view"
usage: "view",
})
.then((res) => {
this.data = res.result;
@ -444,10 +439,10 @@ export default {
} else {
this.data = {
question_name: "",
question_type: "",
author: "",
describe: "",
tags: [],
question_type: "",
author: "",
describe: "",
tags: [],
};
}
},
@ -623,17 +618,14 @@ export default {
});
},
editorInit() {
require("brace/ext/language_tools");
require("brace/mode/python");
require("brace/snippets/python");
require("brace/theme/eclipse");
highlighter(code) {
return highlight(code, languages.js); //returns html
},
},
};
</script>
<style lang='scss' scoped>
.el-card{
.el-card {
overflow: auto;
}

View File

@ -16,13 +16,19 @@
:contentStyle="{ width: 'calc(100% - 70px)' }"
>
<template slot="extra">
<el-tag type="success" effect="dark">{{ data.question_type }}</el-tag>
<el-tag type="success" effect="dark">{{
data.question_type
}}</el-tag>
</template>
<el-descriptions-item label="作者">{{data.author}}</el-descriptions-item>
<el-descriptions-item label="时间">{{data.date}}</el-descriptions-item>
<el-descriptions-item label="作者">{{
data.author
}}</el-descriptions-item>
<el-descriptions-item label="时间">{{
data.date
}}</el-descriptions-item>
<el-descriptions-item label="标签">
<el-tag
v-for="(item,index) in data.tags"
v-for="(item, index) in data.tags"
:key="index"
size="small"
>{{ item.tag_name }}</el-tag
@ -31,49 +37,73 @@
<el-descriptions-item label="描述" :span="3">
<el-row class="middle">{{ data.describe }}</el-row>
</el-descriptions-item>
<el-descriptions-item label="判断设置" :span="3" v-if="data.decision_setting" >
<el-row type="flex" align="middle" class="middle" v-if="data.decision_setting.answer">
<span style="width:70px">正确答案</span>
<el-input v-model="data.decision_setting.answer" readonly></el-input>
<el-descriptions-item
label="判断设置"
:span="3"
v-if="data.decision_setting"
>
<el-row
type="flex"
align="middle"
class="middle"
v-if="data.decision_setting.answer"
>
<span style="width: 70px">正确答案</span>
<el-input
v-model="data.decision_setting.answer"
readonly
></el-input>
</el-row>
<el-row v-if="data.decision_setting.assigned">
<editor
height="150"
width="100%"
ref="editor"
:content="data.decision_setting.assigned"
v-model="data.decision_setting.assigned"
:options="{
enableBasicAutocompletion: true,
enableSnippets: true,
enableLiveAutocompletion: true,
tabSize: 2,
fontSize: 14,
readOnly: true,
showPrintMargin: false, //线
}"
:lang="'python'"
@init="editorInit"
/>
<prism-editor
class="my-editor"
v-model="data.decision_setting.assigned"
:highlight="highlighter"
:line-numbers="true"
></prism-editor>
</el-row>
<el-row v-if="data.decision_setting.interval&&data.decision_setting.score" class="middle">
<el-row
v-if="
data.decision_setting.interval && data.decision_setting.score
"
class="middle"
>
<el-row>
<el-col :span="12" class="flex-box">区间</el-col>
<el-col :span="12" class="flex-box">百分比%</el-col>
</el-row>
<el-row v-for="(item,index) in data.decision_setting.interval" :key="index" type="flex">
<el-col :span="12" class="flex-box">{{item}}</el-col>
<el-col :span="12" class="flex-box">{{data.decision_setting.score[index]}}</el-col>
<el-row
v-for="(item, index) in data.decision_setting.interval"
:key="index"
type="flex"
>
<el-col :span="12" class="flex-box">{{ item }}</el-col>
<el-col :span="12" class="flex-box">{{
data.decision_setting.score[index]
}}</el-col>
</el-row>
</el-row>
<el-row v-if="data.decision_setting.contain&&data.decision_setting.score" class="middle">
<el-row
v-if="
data.decision_setting.contain && data.decision_setting.score
"
class="middle"
>
<el-row>
<el-col :span="12" class="flex-box">包含</el-col>
<el-col :span="12" class="flex-box">百分比%</el-col>
</el-row>
<el-row v-for="(item,index) in data.decision_setting.contain" :key="index" type="flex">
<el-col :span="12" class="flex-box">{{item}}</el-col>
<el-col :span="12" class="flex-box">{{data.decision_setting.score[index%data.decision_setting.contain.length]}}</el-col>
<el-row
v-for="(item, index) in data.decision_setting.contain"
:key="index"
type="flex"
>
<el-col :span="12" class="flex-box">{{ item }}</el-col>
<el-col :span="12" class="flex-box">{{
data.decision_setting.score[
index % data.decision_setting.contain.length
]
}}</el-col>
</el-row>
</el-row>
</el-descriptions-item>
@ -83,7 +113,11 @@
:column="data.options.setColumn()"
></fecr-table>
</el-descriptions-item>
<el-descriptions-item label="输入" :span="3" v-if="data.input_setting">
<el-descriptions-item
label="输入"
:span="3"
v-if="data.input_setting"
>
<fecr-table
:data="data.input_setting"
:column="data.input_setting.setColumn()"
@ -96,11 +130,16 @@
</template>
<script>
import Editor from "vue2-ace-editor";
import { PrismEditor } from "vue-prism-editor";
import "vue-prism-editor/dist/prismeditor.min.css";
import { highlight, languages } from "prismjs/components/prism-core";
import "prismjs/components/prism-clike";
import "prismjs/components/prism-javascript";
import "prismjs/themes/prism-tomorrow.css";
import FecrTable from "@/components/FecrTable";
import FecrDialog from "@/components/FecrDialog";
export default {
components: { Editor, FecrTable, FecrDialog },
components: { PrismEditor, FecrTable, FecrDialog },
props: {
visible: [Boolean],
data: [Object, Array],
@ -110,11 +149,8 @@ export default {
},
methods: {
editorInit() {
require("brace/ext/language_tools");
require("brace/mode/python");
require("brace/snippets/python");
require("brace/theme/eclipse");
highlighter(code) {
return highlight(code, languages.js); //returns html
},
},
};
@ -124,7 +160,7 @@ export default {
padding: 20px;
}
.flex-box{
.flex-box {
@include flex(center);
height: 30px;
line-height: 30px;

View File

@ -53,6 +53,7 @@ import FecrAside from "./aside/index";
import company from "./content/dataManager/company/index";
import createCompany from "./content/dataManager/company/create";
import companyDetails from "./content/dataManager/company/details/index";
import indicators from "./content/dataManager/indicators/index"
//
import func from "./content/modelManager/func/index";
import port from "./content/modelManager/port/index";
@ -72,6 +73,7 @@ export default {
company,
createCompany,
companyDetails,
indicators,
//
func,
port,