|
@@ -0,0 +1,925 @@
|
|
|
+<template>
|
|
|
+ <el-row class="menu5-1" :gutter="10" v-loading="loading">
|
|
|
+ <!-- <el-col :span="5" class="left"> -->
|
|
|
+ <!-- <el-row :gutter="20">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-select v-model="leftQuery.period" placeholder="请选择学段">
|
|
|
+ <el-option
|
|
|
+ v-for="item in metaData['periodsR']"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.name"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-select v-model="leftQuery.subject" placeholder="请选择学科">
|
|
|
+ <el-option
|
|
|
+ v-for="item in metaData['subjectsR']"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.name"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-col>
|
|
|
+ </el-row> -->
|
|
|
+ <!-- <el-row style="padding: 20px 6px 0; text-align: right">
|
|
|
+ <el-button class="add" size="small" @click="open1">新增</el-button>
|
|
|
+ </el-row> -->
|
|
|
+ <!-- <div class="tree" ref="tree">
|
|
|
+ <el-tree
|
|
|
+ ref="treeInner"
|
|
|
+ :data="treeData"
|
|
|
+ node-key="id"
|
|
|
+ default-expand-all
|
|
|
+ :expand-on-click-node="false"
|
|
|
+ :highlight-current="true"
|
|
|
+ >
|
|
|
+ <span class="custom-tree-node" slot-scope="{ node, data }">
|
|
|
+ <span @click="getItems(data)">{{ data.name }}</span>
|
|
|
+ </span>
|
|
|
+ </el-tree>
|
|
|
+ </div> -->
|
|
|
+ <!-- </el-col> -->
|
|
|
+ <el-col :span="24" class="right">
|
|
|
+ <cloudSearch :advance="false" @search="getItems()" @reset="reset()">
|
|
|
+ <template slot="normal">
|
|
|
+ <div class="cloudSearch-item">
|
|
|
+ <div class="form-label">试卷名称:</div>
|
|
|
+ <el-input
|
|
|
+ v-model="listQuery.name"
|
|
|
+ placeholder="请输入试卷名称"
|
|
|
+ size="small"
|
|
|
+ ></el-input>
|
|
|
+ </div>
|
|
|
+ <div class="cloudSearch-item">
|
|
|
+ <div class="form-label">试卷编号:</div>
|
|
|
+ <el-input
|
|
|
+ v-model="listQuery.pno"
|
|
|
+ placeholder="请输入试卷编号"
|
|
|
+ size="small"
|
|
|
+ ></el-input>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </cloudSearch>
|
|
|
+ <cloudTable :table="dataTable" @refresh-table="getItems" @handle="handle">
|
|
|
+ <template slot="tableBtn">
|
|
|
+ <el-button size="small" @click="open2()">批量导入</el-button>
|
|
|
+ <el-button class="add" size="small" @click="addItems()"
|
|
|
+ >新增试卷</el-button
|
|
|
+ >
|
|
|
+ <el-button class="add" size="small" @click="paperTemp()"
|
|
|
+ >下载试卷模板</el-button
|
|
|
+ >
|
|
|
+ </template>
|
|
|
+ <template v-slot:customOpt="data">
|
|
|
+ <el-button
|
|
|
+ class="operation"
|
|
|
+ :disabled="data.row.cut || data.row.uploaded ? false : true"
|
|
|
+ :style="data.row.cut || data.row.uploaded ? '' : 'color:#E8EBF3'"
|
|
|
+ @click="setScore(data.row)"
|
|
|
+ >
|
|
|
+ 设置分值
|
|
|
+ </el-button>
|
|
|
+ <el-upload
|
|
|
+ ref="upload"
|
|
|
+ class="opt"
|
|
|
+ action=""
|
|
|
+ :name="'datafile'"
|
|
|
+ :headers="upHeader"
|
|
|
+ :limit="1"
|
|
|
+ :on-success="handleUploadSuccess"
|
|
|
+ :on-error="handleUploadError"
|
|
|
+ :show-file-list="false"
|
|
|
+ :http-request="clickup"
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ class="operation"
|
|
|
+ @click="setCurRow(data.row)"
|
|
|
+ >上传</el-button
|
|
|
+ >
|
|
|
+ </el-upload>
|
|
|
+
|
|
|
+ <!-- {{data.row}} -->
|
|
|
+ </template>
|
|
|
+ </cloudTable>
|
|
|
+ </el-col>
|
|
|
+ <cloudDialog
|
|
|
+ ref="dialog1"
|
|
|
+ :config="dialogConfig1"
|
|
|
+ :beforeClose="beforeClose1"
|
|
|
+ @close="resetForm1"
|
|
|
+ >
|
|
|
+ <el-form ref="form" :model="dialogForm1" label-width="110px">
|
|
|
+ <el-form-item label="资源分类名称">
|
|
|
+ <el-input
|
|
|
+ v-model="dialogForm1.name"
|
|
|
+ placeholder="请输入名称"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="学段名称">
|
|
|
+ <el-select v-model="dialogForm1.period" placeholder="请选择学段">
|
|
|
+ <el-option
|
|
|
+ v-for="item in metaData['periodsR']"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.name"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="学科">
|
|
|
+ <el-select v-model="dialogForm1.subject" placeholder="请选择学科">
|
|
|
+ <el-option
|
|
|
+ v-for="item in metaData['subjectsR']"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.name"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </cloudDialog>
|
|
|
+ <cloudDialog
|
|
|
+ ref="dialog"
|
|
|
+ :config="dialogConfig"
|
|
|
+ :beforeClose="beforeClose"
|
|
|
+ @close="resetForm"
|
|
|
+ >
|
|
|
+ <el-form
|
|
|
+ ref="dialogForm"
|
|
|
+ :model="dialogForm"
|
|
|
+ label-width="80px"
|
|
|
+ :rules="dialogFormRules"
|
|
|
+ >
|
|
|
+ <el-form-item label="试卷名称" prop="name">
|
|
|
+ <el-input
|
|
|
+ v-model="dialogForm.name"
|
|
|
+ placeholder="请输入名称"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="试卷编号" prop="pno">
|
|
|
+ <el-input
|
|
|
+ v-model="dialogForm.pno"
|
|
|
+ placeholder="请输入编号"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="试卷页数" prop="pages">
|
|
|
+ <el-input-number
|
|
|
+ v-model="dialogForm.pages"
|
|
|
+ :min="1"
|
|
|
+ :max="50"
|
|
|
+ label="试卷页数"
|
|
|
+ ></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="试卷大小" prop="size">
|
|
|
+ <el-select v-model="dialogForm.size" placeholder="请选择试卷大小">
|
|
|
+ <el-option
|
|
|
+ v-for="item in ['A3', 'A4']"
|
|
|
+ :key="item"
|
|
|
+ :label="item"
|
|
|
+ :value="item"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <!--
|
|
|
+ <el-form-item label="年份">
|
|
|
+ <el-date-picker v-model="dialogForm.year" type="year" value-format="yyyy" placeholder="请输入年份">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>-->
|
|
|
+
|
|
|
+ <!-- <el-form-item label="试卷图片" prop="imgs">
|
|
|
+ <el-upload
|
|
|
+ class="avatar-uploader"
|
|
|
+ multiple
|
|
|
+ list-type="picture-card"
|
|
|
+ action="/v1/common/upfile"
|
|
|
+ :name="'datafile'"
|
|
|
+ :headers="upHeader"
|
|
|
+ :on-success="handleAvatarSuccess"
|
|
|
+ :file-list="this.dialogForm.imgs"
|
|
|
+ >
|
|
|
+ <i slot="default" class="el-icon-plus"></i>
|
|
|
+ <div slot="file" slot-scope="{ file }">
|
|
|
+ <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
|
|
|
+ <span class="el-upload-list__item-actions">
|
|
|
+ <span
|
|
|
+ v-if="!disabled"
|
|
|
+ class="el-upload-list__item-delete"
|
|
|
+ @click="handleRemove(file, dialogForm.imgs)"
|
|
|
+ >
|
|
|
+ <i class="el-icon-delete"></i>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </el-upload>
|
|
|
+ </el-form-item> -->
|
|
|
+ </el-form>
|
|
|
+ </cloudDialog>
|
|
|
+ <cloudDialog
|
|
|
+ ref="dialog2"
|
|
|
+ :config="dialogConfig2"
|
|
|
+ :beforeClose="beforeClose2"
|
|
|
+ @close="resetForm2"
|
|
|
+ >
|
|
|
+ <span>
|
|
|
+ 请先下载任务模板,按模板格式填充数据然后上传。
|
|
|
+ <a href="###" style="color: #429fff">点击下载模板</a>
|
|
|
+ </span>
|
|
|
+ <el-upload
|
|
|
+ class="upload-demo"
|
|
|
+ action="https://jsonplaceholder.typicode.com/posts/"
|
|
|
+ :on-preview="handlePreview"
|
|
|
+ :before-remove="beforeRemove"
|
|
|
+ multiple
|
|
|
+ :limit="3"
|
|
|
+ :on-exceed="handleExceed"
|
|
|
+ :file-list="this.fileList"
|
|
|
+ >
|
|
|
+ <el-button size="small" type="primary">选择文件</el-button>
|
|
|
+ </el-upload>
|
|
|
+ </cloudDialog>
|
|
|
+ <cloudDialog
|
|
|
+ className="queDialog"
|
|
|
+ ref="dialog3"
|
|
|
+ :config="dialogConfig3"
|
|
|
+ :beforeClose="beforeClose3"
|
|
|
+ @close="resetForm3"
|
|
|
+ >
|
|
|
+ <div class="ques" v-for="(item, index) in dialog3Content">
|
|
|
+ <span v-exchangeHtml:foo="item.tx"></span>
|
|
|
+ <span v-exchangeHtml:foo="item.tg"></span>
|
|
|
+ <span v-exchangeHtml:foo="item.da"></span>
|
|
|
+ <span v-exchangeHtml:foo="item.zsd"></span>
|
|
|
+ <span v-exchangeHtml:foo="item.nd"></span>
|
|
|
+ <span v-exchangeHtml:foo="item.jx"></span>
|
|
|
+ </div>
|
|
|
+ </cloudDialog>
|
|
|
+ <cloudDialog ref="dialog4" :config="dialogConfig4">
|
|
|
+ <div style="margin-bottom: 30px">
|
|
|
+ 检测到未下载安装客户端,请点击以下链接下载客户端并安装
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <a
|
|
|
+ style="color: #6195e0"
|
|
|
+ :href="'http://osscache.scxjc.club/static/say365/Say365Scanner.exe'"
|
|
|
+ >下载客户端</a
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </cloudDialog>
|
|
|
+ </el-row>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { resourceApi } from "@/api/resource";
|
|
|
+import { paperApi } from "@/api/paper";
|
|
|
+import axios from "axios";
|
|
|
+import Clickoutside from "element-ui/src/utils/clickoutside";
|
|
|
+export default {
|
|
|
+ name: "menu5-1",
|
|
|
+ metaDataType: ["periodsR", "subjectsR", "regions"],
|
|
|
+ directives: { Clickoutside },
|
|
|
+ computed: {},
|
|
|
+ data() {
|
|
|
+ var token = this.Cookies.get("www-authenticate");
|
|
|
+ return {
|
|
|
+ queDialog: "queDialog",
|
|
|
+ loading: false,
|
|
|
+ curID: "0",
|
|
|
+ curTree: {},
|
|
|
+ curRow: {},
|
|
|
+ leftQuery: {
|
|
|
+ ctype: "work",
|
|
|
+ period: "",
|
|
|
+ subject: "",
|
|
|
+ },
|
|
|
+ listQuery: {
|
|
|
+ name: "",
|
|
|
+ pno: "",
|
|
|
+ },
|
|
|
+ treeData: [],
|
|
|
+ dataTable: {
|
|
|
+ loading: false,
|
|
|
+ hasSelect: true,
|
|
|
+ columns: [
|
|
|
+ {
|
|
|
+ id: "0",
|
|
|
+ label: "试卷名称",
|
|
|
+ prop: "name",
|
|
|
+ width: 280,
|
|
|
+ show: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: "1",
|
|
|
+ label: "试卷编号",
|
|
|
+ prop: "pno",
|
|
|
+ width: 180,
|
|
|
+ show: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: "2",
|
|
|
+ label: "试卷页数",
|
|
|
+ prop: "pages",
|
|
|
+ show: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: "3",
|
|
|
+ label: "满分",
|
|
|
+ prop: "score",
|
|
|
+ show: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: "4",
|
|
|
+ label: "标准卷上传状态",
|
|
|
+ prop: "uploaded",
|
|
|
+ show: true,
|
|
|
+ filter: "boolean",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: "5",
|
|
|
+ label: "标准卷切割状态",
|
|
|
+ prop: "cut",
|
|
|
+ show: true,
|
|
|
+ filter: "boolean",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: "6",
|
|
|
+ label: "电子版试卷上传状态",
|
|
|
+ prop: "attached",
|
|
|
+ show: true,
|
|
|
+ filter: "boolean",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ data: [],
|
|
|
+ setColShow: false,
|
|
|
+ btnShow: true,
|
|
|
+ hasOperation: true,
|
|
|
+ operation: {
|
|
|
+ label: "操作",
|
|
|
+ width: "280",
|
|
|
+ data: [
|
|
|
+ {
|
|
|
+ id: "1",
|
|
|
+ label: "切割",
|
|
|
+ FunName: "cutPaper",
|
|
|
+ size: "mini",
|
|
|
+ show: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: "2",
|
|
|
+ label: "编辑",
|
|
|
+ FunName: "edit",
|
|
|
+ size: "mini",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: "3",
|
|
|
+ label: "删除",
|
|
|
+ FunName: "del",
|
|
|
+ size: "mini",
|
|
|
+ },
|
|
|
+ // {
|
|
|
+ // id: "4",
|
|
|
+ // label: "设置分值",
|
|
|
+ // FunName: "setScore",
|
|
|
+ // size: "mini",
|
|
|
+ // },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ paginationShow: true,
|
|
|
+ paginationOpt: {
|
|
|
+ pageIndex: 1,
|
|
|
+ pageRows: 10,
|
|
|
+ total: 10,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ dialogConfig1: {
|
|
|
+ top: "8vh",
|
|
|
+ width: "600px",
|
|
|
+ title: "新增试卷",
|
|
|
+ center: true,
|
|
|
+ btnTxt: ["取消", "保存"],
|
|
|
+ },
|
|
|
+ dialogForm1: {
|
|
|
+ ctype: "work",
|
|
|
+ name: "",
|
|
|
+ pid: 0,
|
|
|
+ period: "",
|
|
|
+ subject: "",
|
|
|
+ },
|
|
|
+ // 新增资源
|
|
|
+ dialogConfig: {
|
|
|
+ top: "8vh",
|
|
|
+ width: "600px",
|
|
|
+ title: "新增试卷信息",
|
|
|
+ center: true,
|
|
|
+ btnTxt: ["取消", "保存"],
|
|
|
+ },
|
|
|
+ dialogForm: {
|
|
|
+ name: "",
|
|
|
+ year: "",
|
|
|
+ pno: "",
|
|
|
+ pages: 0,
|
|
|
+ size: "",
|
|
|
+ imgs: [],
|
|
|
+ },
|
|
|
+ fileList: [],
|
|
|
+ dialogImageUrl: "",
|
|
|
+ dialogVisible: false,
|
|
|
+ disabled: false,
|
|
|
+
|
|
|
+ imageUrl: "",
|
|
|
+ upHeader: {
|
|
|
+ Authorization: `Bearer ${token}`,
|
|
|
+ },
|
|
|
+ dialogConfig2: {
|
|
|
+ top: "20vh",
|
|
|
+ width: "600px",
|
|
|
+ title: "批量导入任务",
|
|
|
+ center: true,
|
|
|
+ btnTxt: ["取消", "保存"],
|
|
|
+ },
|
|
|
+ dialogConfig3: {
|
|
|
+ top: "0px",
|
|
|
+ width: "1000px",
|
|
|
+ title: "电子版试卷预览",
|
|
|
+ center: true,
|
|
|
+ btnTxt: ["取消", "保存"],
|
|
|
+ },
|
|
|
+ dialog3Content: [],
|
|
|
+ dialogConfig4: {
|
|
|
+ top: "20vh",
|
|
|
+ width: "600px",
|
|
|
+ title: "请下载客户端",
|
|
|
+ center: true,
|
|
|
+ btnTxt: ["取消"],
|
|
|
+ },
|
|
|
+
|
|
|
+ dialogFormRules: {
|
|
|
+ name: [{ required: true, message: "请输入名称", trigger: "blur" }],
|
|
|
+ pno: [{ required: true, message: "请输入编号", trigger: "blur" }],
|
|
|
+ pages: [{ required: true, message: "请输入试卷页数", trigger: "blur" }],
|
|
|
+ size: [
|
|
|
+ { required: true, message: "请输入试卷大小", trigger: "change" },
|
|
|
+ ],
|
|
|
+ imgs: [
|
|
|
+ { required: true, message: "请输入试卷图片", trigger: "change" },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ };
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ leftQuery: {
|
|
|
+ deep: true,
|
|
|
+ handler: function (newV, oldV) {
|
|
|
+ if (newV.period && newV.subject) {
|
|
|
+ this.getTree();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ "metaData.periodsR": {
|
|
|
+ deep: true,
|
|
|
+ handler: function (newV, oldV) {
|
|
|
+ if (newV && newV.length > 0) {
|
|
|
+ this.leftQuery.period = newV[0].name;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ "metaData.subjectsR": {
|
|
|
+ deep: true,
|
|
|
+ handler: function (newV, oldV) {
|
|
|
+ if (newV && newV.length > 0) {
|
|
|
+ this.leftQuery.subject = newV[0].name;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ created() {},
|
|
|
+ mounted() {
|
|
|
+ // this.getTree();
|
|
|
+ // let that = this;
|
|
|
+ // this.$refs.tree.addEventListener("click", function (e) {
|
|
|
+ // that.getItems();
|
|
|
+ // that.curID = 0;
|
|
|
+ // that.$refs.treeInner.setCurrentKey(null);
|
|
|
+ // });
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ getTree() {
|
|
|
+ resourceApi.getCategories(this.leftQuery).then((res) => {
|
|
|
+ if (res.mess == "success") {
|
|
|
+ this.treeData = res.data;
|
|
|
+ this.getItems(this.treeData);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ open1() {
|
|
|
+ this.$refs.dialog1.open((cancel) => {
|
|
|
+ resourceApi.add(this.dialogForm1).then((res) => {
|
|
|
+ if (res.mess == "success") {
|
|
|
+ this.getTree();
|
|
|
+ cancel();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ open2() {
|
|
|
+ this.$refs.dialog2
|
|
|
+ .open((cancel) => {
|
|
|
+ // cancel();
|
|
|
+ console.log("点击提交按钮了");
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ console.log(this.$refs.span);
|
|
|
+ }); //这里就充分利用了open方法中返回的nextTick
|
|
|
+ },
|
|
|
+ setCurRow(curRow) {
|
|
|
+ this.curRow = curRow;
|
|
|
+ },
|
|
|
+ open3() {
|
|
|
+ let _this = this;
|
|
|
+ this.$refs.dialog3.open((cancel) => {
|
|
|
+ cancel();
|
|
|
+ console.log(_this.curRow);
|
|
|
+ let params = {
|
|
|
+ // id:_this.curRow.id,
|
|
|
+ pid: _this.curRow.id,
|
|
|
+ pno: _this.curRow.pno,
|
|
|
+ ques: _this.dialog3Content,
|
|
|
+ };
|
|
|
+ paperApi.saveDocss(params).then((res) => {
|
|
|
+ if (res.mess == "success") {
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: "导入试题成功!",
|
|
|
+ });
|
|
|
+ this.getTree();
|
|
|
+ cancel();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // console.log("点击提交按钮了");
|
|
|
+ });
|
|
|
+ },
|
|
|
+ open4() {
|
|
|
+ this.$refs.upload.clearFiles();
|
|
|
+ this.$refs.dialog4.open((cancel) => {
|
|
|
+ // cancel();
|
|
|
+ console.log("点击提交按钮了");
|
|
|
+ });
|
|
|
+ },
|
|
|
+ beforeClose1() {},
|
|
|
+ beforeClose() {
|
|
|
+ console.log("关闭前");
|
|
|
+ },
|
|
|
+ beforeClose2() {
|
|
|
+ console.log("关闭前");
|
|
|
+ },
|
|
|
+ beforeClose3() {
|
|
|
+ console.log("关闭前");
|
|
|
+ },
|
|
|
+ resetForm1() {
|
|
|
+ // 这里可以写重置表单的实现
|
|
|
+ },
|
|
|
+ resetForm() {
|
|
|
+ this.dialogForm.name = "";
|
|
|
+ this.dialogForm.pno = "";
|
|
|
+ this.dialogForm.pages = "";
|
|
|
+ this.dialogForm.imgs = [];
|
|
|
+ // 这里可以写重置表单的实现
|
|
|
+ },
|
|
|
+ resetForm2() {
|
|
|
+ // 这里可以写重置表单的实现
|
|
|
+ },
|
|
|
+ resetForm3() {
|
|
|
+ // 这里可以写重置表单的实现
|
|
|
+ },
|
|
|
+ handleRemove(file, fileList) {
|
|
|
+ this.dialogForm.imgs = this.dialogForm.imgs.filter(
|
|
|
+ (item) => item.uid !== file.uid
|
|
|
+ );
|
|
|
+ debugger;
|
|
|
+ },
|
|
|
+ reset() {
|
|
|
+ this.ctime = "";
|
|
|
+ this.listQuery = {
|
|
|
+ name: "",
|
|
|
+ pno: "",
|
|
|
+ };
|
|
|
+ this.leftQuery.period = "高中";
|
|
|
+ this.leftQuery.subject = "语文";
|
|
|
+ this.curID = 0;
|
|
|
+ this.getItems();
|
|
|
+ this.$refs.treeInner.setCurrentKey(null);
|
|
|
+ },
|
|
|
+ handlePreview(file) {
|
|
|
+ console.log(file);
|
|
|
+ },
|
|
|
+ handleExceed(files, fileList) {
|
|
|
+ this.$message.warning(
|
|
|
+ `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
|
|
|
+ files.length + fileList.length
|
|
|
+ } 个文件`
|
|
|
+ );
|
|
|
+ },
|
|
|
+ beforeRemove(file, fileList) {
|
|
|
+ return this.$confirm(`确定移除 ${file.name}?`);
|
|
|
+ },
|
|
|
+ handleCheckChange(data, e1, e2) {},
|
|
|
+ remove(node, data) {
|
|
|
+ let params = {
|
|
|
+ id: data.id,
|
|
|
+ ctype: "work",
|
|
|
+ };
|
|
|
+ resourceApi.del(params).then((res) => {
|
|
|
+ this.getTree();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ edit(node, data) {
|
|
|
+ this.dialogForm1 = data;
|
|
|
+ this.dialogForm1.ctype = "work";
|
|
|
+ this.$refs.dialog1.open((cancel) => {
|
|
|
+ resourceApi.edit(this.dialogForm1).then((res) => {
|
|
|
+ if (res.mess == "success") {
|
|
|
+ this.getTree();
|
|
|
+ cancel();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ append(data) {
|
|
|
+ this.dialogForm1 = {};
|
|
|
+ this.dialogForm1.pid = data.id;
|
|
|
+ this.dialogForm1.ctype = "work";
|
|
|
+ this.open1(data);
|
|
|
+ },
|
|
|
+ getItems(data) {
|
|
|
+ this.curID = data ? data.id : "0";
|
|
|
+ this.curTree = data ? data : {};
|
|
|
+ let params = {
|
|
|
+ name: this.listQuery.name,
|
|
|
+ pno: this.listQuery.pno,
|
|
|
+ ctgid: this.curID,
|
|
|
+ page: this.dataTable.paginationOpt.pageIndex,
|
|
|
+ size: this.dataTable.paginationOpt.pageRows,
|
|
|
+ ptype:'exam'
|
|
|
+ };
|
|
|
+ paperApi.getPapers(params).then((res) => {
|
|
|
+ this.dataTable.data = res.data;
|
|
|
+ this.dataTable.paginationOpt.total = res.total;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ handleAvatarSuccess(response, file, fileList) {
|
|
|
+ this.dialogForm.imgs.push(response.data);
|
|
|
+ },
|
|
|
+ handleUploadSuccess(response) {
|
|
|
+ this.$refs.upload.clearFiles();
|
|
|
+ },
|
|
|
+ handleUploadError(response) {
|
|
|
+ debugger;
|
|
|
+ },
|
|
|
+ addItems() {
|
|
|
+ // if (!+this.curID) {
|
|
|
+ // this.$message({
|
|
|
+ // type: "error",
|
|
|
+ // message: "请先选择左侧的分类",
|
|
|
+ // });
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
+ this.$refs.dialog.config.title = "新增试卷信息";
|
|
|
+ this.resetForm();
|
|
|
+ let that = this;
|
|
|
+ let params = {
|
|
|
+ ctgid: 0,
|
|
|
+ ctype: "exam",
|
|
|
+ ptype:'exam'
|
|
|
+ // imgs: this.dialogForm.imgs,
|
|
|
+ };
|
|
|
+ this.$refs.dialog.open((cancel) => {
|
|
|
+ this.$refs["dialogForm"].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ paperApi.add(Object.assign(params, that.dialogForm)).then((res) => {
|
|
|
+ this.dataTable.data = res.data;
|
|
|
+ this.getItems(that.curTree);
|
|
|
+ cancel();
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ paperTemp() {
|
|
|
+ var link = document.createElement("a");
|
|
|
+ link.href =
|
|
|
+ "http://osscache.scxjc.club/static/say365/eques_template.docx";
|
|
|
+ link.click();
|
|
|
+ },
|
|
|
+ handle(name, index, row) {
|
|
|
+ switch (name) {
|
|
|
+ case "cutPaper":
|
|
|
+ this.$router.push({
|
|
|
+ path: "cutPage",
|
|
|
+ query: { paperId: row.id },
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case "edit":
|
|
|
+ this.$refs.dialog.config.title = "编辑试卷信息";
|
|
|
+ row.ctype = "work";
|
|
|
+ paperApi.getDetail(row).then((res) => {
|
|
|
+ this.dialogForm.name = res.data.name;
|
|
|
+ this.dialogForm.pno = res.data.pno;
|
|
|
+ this.dialogForm.id = res.data.id;
|
|
|
+ // this.dialogForm.imgs = res.data.imgs.map((item) => {
|
|
|
+ // return {
|
|
|
+ // url: item,
|
|
|
+ // };
|
|
|
+ // });
|
|
|
+ this.dialogForm.pages = res.data.pages;
|
|
|
+ this.$refs.dialog.open((cancel) => {
|
|
|
+ this.dialogForm.ctype = "work";
|
|
|
+ this.dialogForm.ctgid = res.data.category_id;
|
|
|
+ // this.dialogForm.imgs = this.dialogForm.imgs.map((item) =>
|
|
|
+ // item.url ? item.url : item
|
|
|
+ // );
|
|
|
+ this.$refs["dialogForm"].validate((valid)=>{
|
|
|
+ if(valid){
|
|
|
+ paperApi.edit(this.dialogForm).then((res) => {
|
|
|
+ if(res.mess=="success"){
|
|
|
+ this.$message({
|
|
|
+ type:"success",
|
|
|
+ message:"修改成功"
|
|
|
+ })
|
|
|
+ this.getItems(this.curTree);
|
|
|
+ cancel();
|
|
|
+ }else{
|
|
|
+ Message({
|
|
|
+ type:"error",
|
|
|
+ message:res.message
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
+ });
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case "del":
|
|
|
+ this.$confirm("此操作将删除试卷, 是否继续?", "提示", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ paperApi.del(row.id).then((res) => {
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: "删除成功!",
|
|
|
+ });
|
|
|
+ this.getItems(this.curTree);
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message({
|
|
|
+ type: "info",
|
|
|
+ message: "已取消删除",
|
|
|
+ });
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ setScore(row) {
|
|
|
+ this.$router.push({
|
|
|
+ path: "scorePage",
|
|
|
+ query: { paperId: row.id },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ clickup(params) {
|
|
|
+ this.dataTable.loading = true;
|
|
|
+ var formData = new FormData();
|
|
|
+ formData.append("file", params.file);
|
|
|
+ // let fileList = new FormData();
|
|
|
+ var token = this.Cookies.get("www-authenticate");
|
|
|
+ axios({
|
|
|
+ url: "http://127.0.0.1:19882/parsedocx.aspx",
|
|
|
+ // url: "http://10.10.153.242:19882/parsedocx.aspx",
|
|
|
+ method: "post",
|
|
|
+ data: formData,
|
|
|
+ headers: {
|
|
|
+ Authorization: `Bearer ${token}`,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ this.dataTable.loading = false;
|
|
|
+ this.open3();
|
|
|
+ this.dialog3Content = res.data;
|
|
|
+ this.$refs.upload.clearFiles();
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ this.loading = false;
|
|
|
+ this.open4();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ handlePictureCardPreview(file) {
|
|
|
+ this.dialogImageUrl = file.url;
|
|
|
+ this.dialogVisible = true;
|
|
|
+ },
|
|
|
+ handleSuccess(event, file, fileList) {
|
|
|
+ debugger;
|
|
|
+ },
|
|
|
+ getHtml(desc) {
|
|
|
+ var temp = document.createElement("div");
|
|
|
+
|
|
|
+ temp.innerHTML = desc;
|
|
|
+
|
|
|
+ var output = temp.innerText || temp.textContent;
|
|
|
+
|
|
|
+ temp = null;
|
|
|
+
|
|
|
+ return output;
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.menu5-1 {
|
|
|
+ display: block;
|
|
|
+
|
|
|
+ .left {
|
|
|
+ padding: 30px 0;
|
|
|
+ margin-bottom: 20px;
|
|
|
+ border-right: 1px solid #ededed;
|
|
|
+
|
|
|
+ .tree {
|
|
|
+ height: 600px;
|
|
|
+ width: 100%;
|
|
|
+ margin: 14px 0;
|
|
|
+
|
|
|
+ .el-button {
|
|
|
+ color: $menuActiveText;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.custom-tree-node {
|
|
|
+ flex: 1;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ font-size: 14px;
|
|
|
+ padding-right: 8px;
|
|
|
+ span {
|
|
|
+ &:first-child {
|
|
|
+ flex-grow: 0;
|
|
|
+ flex-shrink: 0;
|
|
|
+ width: 166px;
|
|
|
+ overflow: hidden;
|
|
|
+ white-space: nowrap;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.bg-purple {
|
|
|
+ background: #d3dce6;
|
|
|
+}
|
|
|
+
|
|
|
+.bg-purple-light {
|
|
|
+ background: #e5e9f2;
|
|
|
+}
|
|
|
+.avatar-uploader .el-upload {
|
|
|
+ border: 1px dashed #d9d9d9;
|
|
|
+ border-radius: 6px;
|
|
|
+ cursor: pointer;
|
|
|
+ position: relative;
|
|
|
+ overflow: hidden;
|
|
|
+}
|
|
|
+.avatar-uploader .el-upload:hover {
|
|
|
+ border-color: #409eff;
|
|
|
+}
|
|
|
+.avatar-uploader-icon {
|
|
|
+ font-size: 28px;
|
|
|
+ color: #8c939d;
|
|
|
+ width: 178px;
|
|
|
+ height: 178px;
|
|
|
+ line-height: 178px;
|
|
|
+ text-align: center;
|
|
|
+}
|
|
|
+.avatar {
|
|
|
+ width: 178px;
|
|
|
+ height: 178px;
|
|
|
+ display: block;
|
|
|
+}
|
|
|
+.opt {
|
|
|
+ display: inline-flex;
|
|
|
+ margin-left: 10px;
|
|
|
+}
|
|
|
+</style>
|
|
|
+<style lang="scss">
|
|
|
+.queDialog {
|
|
|
+ .el-dialog__body {
|
|
|
+ height: 500px;
|
|
|
+ overflow-y: scroll;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|