فهرست منبع

Merge branch 'develop' of http://106.12.23.251:10080/TEAMMODEL/TEAMModelOS into develop

黄贺彬 6 سال پیش
والد
کامیت
c97cce158c

+ 19 - 6
TEAMModelOS/ClientApp/api/api.js

@@ -2,11 +2,11 @@ import { fetch, post } from '@/filters/http'
 export default {
 export default {
   //获取登录跳转链接
   //获取登录跳转链接
   getLoginLink: function (data) {
   getLoginLink: function (data) {
-     return post('api/login/login', data);
+    return post('api/login/login', data);
   },
   },
   //验证登录
   //验证登录
   checkLogin: function (data) {
   checkLogin: function (data) {
-     return post('api/login/CheckLogin', data);
+    return post('api/login/CheckLogin', data);
   },
   },
   //获取登录人员角色列表
   //获取登录人员角色列表
   getLoginRoles: function (data) {
   getLoginRoles: function (data) {
@@ -52,6 +52,19 @@ export default {
   SaveOrUpdateSchoolVolume: function (data) {
   SaveOrUpdateSchoolVolume: function (data) {
     return post('api/volume/SaveOrUpdateSchoolVolume', data);
     return post('api/volume/SaveOrUpdateSchoolVolume', data);
   },
   },
+  //根据册别及其他条件获取课纲树形结构
+  FindSyllabusByVolumeCode: function (data) {
+    return post('api/syllabus/FindSyllabusByVolumeCode', data);
+  },
+  //保存单个课纲节点
+  SaveOrUpdateSingleNode: function (data) {
+    return post('api/Syllabus/SaveOrUpdate', data);
+  },
+
+
+
+
+
   //获取登录人员身份信息
   //获取登录人员身份信息
   getLoginClaim: function (data) {
   getLoginClaim: function (data) {
     return post('api/role/GetLoginClaim', data);
     return post('api/role/GetLoginClaim', data);
@@ -108,16 +121,16 @@ export default {
 
 
   //动态数据
   //动态数据
   //关注年级变化数据
   //关注年级变化数据
-  FindSelectGrade:function() {
+  FindSelectGrade: function () {
     return fetch('/api/class/getChange?identity=Changegrade');
     return fetch('/api/class/getChange?identity=Changegrade');
   },
   },
- //关注学年期变化数据
+  //关注学年期变化数据
   FindSelectTerm: function () {
   FindSelectTerm: function () {
     return fetch('/api/class/getChangeterm?identity=Changeterm');
     return fetch('/api/class/getChangeterm?identity=Changeterm');
   },
   },
   //点击某次考试详情 变化数据
   //点击某次考试详情 变化数据
-   FindSelectExam: function () {
-     return fetch('/api/class/getChangeExam?identity=Changeexam');
+  FindSelectExam: function () {
+    return fetch('/api/class/getChangeExam?identity=Changeexam');
   },
   },
   //筛选考试类型 变化数据
   //筛选考试类型 变化数据
   FindSelectExamType: function () {
   FindSelectExamType: function () {

+ 13 - 0
TEAMModelOS/ClientApp/assets/CSS/syllabus/common.css

@@ -0,0 +1,13 @@
+.center {
+    display: flex;
+    flex-direction: row;
+    justify-content: center;
+    align-items: center;
+}
+
+.centerCol {
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+}

+ 0 - 183
TEAMModelOS/ClientApp/common/SyHeader.vue

@@ -1,183 +0,0 @@
-<template>
-  <div class="header_content">
-    <div class="logo_box">
-      <img src="@/assets/tmd_logo.png">
-    </div>
-    <div class="header_module">
-      <ul>
-        <li v-for="(item,index) in header_data" :class='["header_list",currentIndex==index ? "header_list_active" : ""]' @click="listClick(index)">
-          <div class="module_box">
-            <img :src="item.imageurl">
-          </div>
-          <div class="module_title">
-            <p>{{item.name}}</p>
-          </div>
-        </li>
-      </ul>
-    </div>
-    <div class="header_user">
-      <Icon type="md-person" size="30" color="#fff" />
-      <p class="username">{{username}}</p>
-      <Icon type="md-exit" size="24" color="#fff" style="cursor:pointer" title="返回首页" @click="handleExit" />
-    </div>
-  </div>
-</template>
-<script>
-  export default {
-    name: "SyHeader",
-    data() {
-      return {
-        currentIndex: sessionStorage.getItem('cIndex') ? sessionStorage.getItem('cIndex') : 0,
-        username: localStorage.getItem('username'),
-        header_data: [
-          {
-            id: "1",
-            name: "教材资源",
-            imageurl: require("../assets/icon/header_book.png")
-          },
-          {
-            id: "2",
-            name: "课前导学",
-            imageurl: require("../assets/icon/header_preview.png")
-          },
-          {
-            id: "3",
-            name: "同步备课",
-            imageurl: require("../assets/icon/header_synchronization.png")
-          },
-          {
-            id: "4",
-            name: "互动课堂",
-            imageurl: require("../assets/icon/header_interact.png")
-          },
-          {
-            id: "5",
-            name: "在线检测",
-            imageurl: require("../assets/icon/header_detection.png")
-          },
-          {
-            id: "6",
-            name: "课后作业",
-            imageurl: require("../assets/icon/header_task.png")
-          }
-        ]
-      };
-    },
-    created() {
-      if (window.location.pathname == "/Syllabus") {
-        this.currentIndex = 0;
-      }
-    },
-    methods: {
-      listClick(index) {
-        this.currentIndex = index;
-        sessionStorage.setItem('cIndex', index);
-        switch (index) {
-          case 0:
-            this.$router.push('/BaseContent');
-            break;
-          case 1:
-            this.$router.push('/BasePreview');
-            break;
-          case 2:
-            this.$router.push('/BasePrepare');
-            break;
-          case 3:
-            // this.$router.push('/BasePreview');
-            break;
-          case 4:
-            // this.$router.push('/BasePreview');
-            break;
-
-          default:
-            break;
-        }
-      },
-      handleExit() {
-        this.$router.push('/');
-      }
-    }
-  };
-</script>
-<style scoped>
-  .header_content {
-    width: 100%;
-    height: 140px;
-    background-image: linear-gradient(to top, #20d6ff 0%, #0e84db 100%);
-  }
-
-  .logo_box {
-    width: 12%;
-    height: 140px;
-    float: left;
-    margin-left: 8%;
-    padding-top: 15px;
-  }
-
-    .logo_box img {
-      width: 100px;
-      height: 100px;
-    }
-
-  .header_module {
-    width: 60%;
-    height: 140px;
-    float: left;
-    list-style-type: none;
-  }
-
-  .header_list {
-    width: 10%;
-    height: 140px;
-    display: inline-flex;
-    flex-direction: column;
-    justify-content: center;
-    align-items: center;
-    margin-right: 5%;
-    cursor: pointer;
-  }
-
-    .header_list:hover {
-      background-color: #ffffff54;
-    }
-
-  .header_list_active {
-    background-color: #ffffff54;
-  }
-
-  .module_box {
-    width: 100%;
-    float: left;
-  }
-
-    .module_box img {
-      width: 60%;
-      margin-left: 20%;
-      margin-top: 5%;
-    }
-
-  .module_title {
-    width: 100%;
-    font-size: 1rem;
-    text-align: center;
-    color: #fff;
-  }
-
-  .header_user {
-    height: 100%;
-    width: 15%;
-    float: left;
-    display: flex;
-    flex-direction: row;
-    justify-content: flex-end;
-    align-items: center;
-  }
-
-    .header_user .username {
-      font-size: 14px;
-      margin-left: 10px;
-      margin-right: 15px;
-      color: white;
-      cursor: pointer;
-    }
-</style>

+ 0 - 790
TEAMModelOS/ClientApp/common/SyTree.vue

@@ -1,790 +0,0 @@
-<template>
-  <div class="tree-main">
-    <Row>
-      <Select v-model="bookSelect" class="slideSelect">
-        <Option v-for="item in slideGradeList" :value="item.value" :key="item.value">{{ item.label }}</Option>
-      </Select>
-      <Button type="primary" class="btn-addClass" @click="handleAddBook">添加课纲</Button>
-    </Row>
-    <Tree :data="treeData" :render="renderContent" ref="tree"></Tree>
-    <Modal v-model="modalFlag" title="添加新节点" ok-text="确认" cancel-text="取消" @on-ok="handleAddNode">
-      <Row class="modelRow">
-        <span>
-          当前章节:
-          <span style="margin-left:10px;">{{currentNode.title}}</span>
-        </span>
-      </Row>
-      <Row class="modelRow">
-        <span>章节类型:</span>
-        <RadioGroup v-model="nodeType" type="button">
-          <Radio label="章节"></Radio>
-          <Radio label="课件"></Radio>
-        </RadioGroup>
-      </Row>
-      <Row class="modelRow">
-        <span>章节名称:</span>
-        <Input v-model="inputValue" placeholder="输入新节点名称" style="width: 100%" />
-      </Row>
-    </Modal>
-    <Modal v-model="editFlag" title="修改节点" ok-text="确认" cancel-text="取消" @on-ok="handleUpdateNode">
-      <Row class="modelRow">
-        <span>
-          当前名称:
-          <span style="margin-left:10px;">{{currentNode.title}}</span>
-        </span>
-      </Row>
-      <Row class="modelRow">
-        <span>章节类型:</span>
-        <RadioGroup v-model="nodeType" type="button">
-          <Radio label="章节"></Radio>
-          <Radio label="课件"></Radio>
-        </RadioGroup>
-      </Row>
-      <Row class="modelRow">
-        <span>章节名称:</span>
-        <Input v-model="editValue" placeholder="输入节点新名称" style="width: 100%" />
-      </Row>
-    </Modal>
-    <Modal v-model="addBookFlag" title="添加课纲" ok-text="确认" cancel-text="取消" @on-ok="handleAddConfirm">
-      <Row class="modelRow">
-        <Tabs value="standard" class="addBookArea" :animated="false">
-          <TabPane label="标准课纲" name="standard">
-            <Row>
-              <span>学段</span>
-              <Select v-model="periodSelect" :label-in-value="true" filterable @on-change="periodChange" placeholder="暂无数据">
-                <Option v-for="item in periodList" :value="item.rowKey" :key="item.rowKey">{{ item.name }}</Option>
-              </Select>
-            </Row>
-            <Row>
-              <span>学科</span>
-              <Select v-model="subjectSelect" :label-in-value="true" filterable @on-change="subjectChange" placeholder="暂无数据">
-                <Option v-for="item in subjectList" :value="item.rowKey" :key="item.rowKey">{{ item.name }}</Option>
-              </Select>
-            </Row>
-            <Row>
-              <span>版本</span>
-              <Select v-model="versionSelect" :label-in-value="true" filterable @on-change="versionChange" placeholder="暂无数据">
-                <Option v-for="item in versionList" :value="item.rowKey" :key="item.rowKey">{{ item.name }}</Option>
-              </Select>
-            </Row>
-            <Row>
-              <span>册别</span>
-              <Select v-model="gradeSelect" :label-in-value="true" filterable @on-change="gradeChange" placeholder="暂无数据">
-                <Option v-for="item in gradeList" :value="item.rowKey" :key="item.rowKey">{{ item.name }}</Option>
-              </Select>
-            </Row>
-          </TabPane>
-          <TabPane label="校本课纲" name="custom">标签二的内容</TabPane>
-        </Tabs>
-      </Row>
-    </Modal>
-  </div>
-</template>
-<script>
-  export default {
-    data() {
-      return {
-        bookSelect: "语文人教课标版四年级上册",
-        periodList: [],
-        subjectList: [],
-        versionList: [],
-        gradeList: [],
-        slideGradeList: [
-          {
-            value: "语文人教课标版四年级上册",
-            label: "语文人教课标版四年级上册"
-          },
-          {
-            value: "语文人教课标版五年级上册",
-            label: "语文人教课标版五年级上册"
-          },
-          {
-            value: "语文人教课标版六年级上册",
-            label: "语文人教课标版六年级上册"
-          },
-          {
-            value: "语文人教课标版七年级上册",
-            label: "语文人教课标版七年级上册"
-          },
-          {
-            value: "语文人教课标版八年级上册",
-            label: "语文人教课标版八年级上册"
-          },
-          {
-            value: "语文人教课标版九年级上册",
-            label: "语文人教课标版九年级上册"
-          }
-        ],
-        treeData: [
-          {
-            title: "语文人教课标版四年级上册",
-            order: 0,
-            expand: true,
-            render: (h, { root, node, data }) => {
-              return h(
-                "span",
-                {
-                  style: {
-                    display: "inline-block",
-                    position: "relative",
-                    width: "94%",
-                    textAlign: "left",
-                    paddingLeft: "10px",
-                    cursor: "pointer",
-                    height: "50px",
-                    lineHeight: "50px"
-                  },
-                  on: {
-                    click: () => {
-                      this.rootClick(data);
-                    }
-                  }
-                },
-                [
-                  h("span", [
-                    h("Icon", {
-                      props: {
-                        type: "md-filing"
-                      },
-                      style: {
-                        marginRight: "5px",
-                        display: "none"
-                      }
-                    }),
-                    h("span", { on: { click: () => { } } }, data.title)
-                  ]),
-
-                  h("Button", {
-                    props: {
-                      icon: "ios-add",
-                      type: "primary"
-                    },
-                    style: {
-                      position: "absolute",
-                      right: "30px",
-                      top: "10px",
-                      display: "none",
-                      padding: "0 10px"
-                    },
-                    on: {
-                      click: e => {
-                        e.stopPropagation();
-                        this.appendClick(data);
-                      }
-                    }
-                  })
-
-
-                ]
-              );
-            },
-            children: [
-              {
-                title: "第一组",
-                order: 0,
-                expand: true,
-                children: [
-                  {
-                    title: "文言文两则",
-                    order: 0,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "匆匆",
-                    order: 1,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "桃花心木",
-                    order: 0,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "顶碗少年",
-                    order: 1,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "手指",
-                    order: 0,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "北京的春节",
-                    order: 1,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "各具特色的民居",
-                    order: 0,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "和田的维吾尔",
-                    order: 1,
-                    expand: true,
-                    children: []
-                  }
-                ]
-              },
-              {
-                title: "第二组",
-                expand: true,
-                order: 1,
-                children: [
-                  {
-                    title: "十六年前的回忆",
-                    order: 0,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "灯光",
-                    order: 1,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "为人民服务",
-                    order: 2,
-                    expand: true,
-                    children: []
-                  }
-                ]
-              },
-              {
-                title: "第三组",
-                expand: true,
-                order: 1,
-                children: []
-              }
-            ]
-          }
-        ],
-        inputValue: "",
-        editValue: "",
-        modalFlag: false,
-        editFlag: false,
-        addBookFlag: false,
-        nodeType: "章节",
-        currentNode: "",
-        currentLiNode: "",
-        buttonProps: {
-          type: "default",
-          size: "small"
-        },
-        periodSelect: "",
-        subjectSelect: "",
-        versionSelect: "",
-        gradeSelect: "",
-        periodName: "",
-        subjectName: "",
-        versionName: "",
-        gradeName: "",
-      };
-    },
-
-    methods: {
-      renderContent(h, { root, node, data }) {
-        let that = this;
-        return h(
-          "span",
-          {
-            style: {
-              display: "inline-block",
-              width: "95%",
-              textAlign: "left",
-              paddingLeft: "2%",
-              cursor: "pointer",
-              position: "relative",
-              boxSizing: "border-box"
-            },
-            domProps: {
-              className: "singleClass"
-            },
-            on: {
-              click: () => {
-                this.titleClick(root, node, data, event);
-              },
-              mouseover: e => {
-                e.stopPropagation();
-                this.handleLiOver(event);
-              },
-              mouseleave: e => {
-                e.stopPropagation();
-                this.handleLiLeave(node, event);
-              }
-            }
-          },
-          [
-            h("span", [
-              h("Icon", {
-                props: {
-                  type:
-                    data.children && data.children.length > 0
-                      ? "md-albums"
-                      : "ios-paper-outline"
-                },
-                style: {
-                  marginRight: "5px",
-                  display: "none"
-                }
-              }),
-              h("span", data.nodeKey + '. ' + data.title)
-            ]),
-            h(
-              "span",
-              {
-                style: {
-                  float: "right",
-                  top: "15px",
-                  display: "none"
-                },
-                on: {
-                  mouseleave: e => {
-                    e.stopPropagation();
-                    //this.hideTools(event);
-                  },
-                },
-                domProps: {
-                  className: "tools"
-                }
-              },
-              [
-                h(
-                  "Icon",
-                  {
-                    props: {
-                      type: "ios-add",
-                      title: "添加"
-                    },
-                    on: {
-                      click: e => {
-                        e.stopPropagation();
-                        this.appendClick(data);
-                      }
-                    }
-                  },
-                ),
-                h(
-                  "Icon",
-                  {
-                    props: {
-                      type: "ios-remove"
-                    },
-                    on: {
-                      click: e => {
-                        e.stopPropagation();
-                        this.remove(root, node, data);
-                      }
-                    }
-                  },
-                ),
-                h(
-                  "Icon",
-                  {
-                    props: {
-                      type: "ios-arrow-round-up"
-                    },
-                    on: {
-                      click: e => {
-                        e.stopPropagation();
-                        this.moveUp(root, node, data);
-                      }
-                    }
-                  },
-                ),
-                h(
-                  "Icon",
-                  {
-                    props: {
-                      type: "ios-arrow-round-down"
-                    },
-                    on: {
-                      click: e => {
-                        e.stopPropagation();
-                        this.moveDown(root, node, data);
-                      }
-                    }
-                  },
-                ),
-                h(
-                  "Icon",
-                  {
-                    props: {
-                      type: "ios-create-outline"
-                    },
-                    on: {
-                      click: e => {
-                        e.stopPropagation();
-                        this.editClick(node, data);
-                      }
-                    }
-                  },
-                )
-              ]
-            )
-          ]
-        );
-      },
-      // 添加节点
-      append(data, value) {
-        const children = data.children || [];
-        children.push({
-          title: value,
-          order: children.length,
-          children: [],
-          expand: true
-        });
-        this.$set(data, "children", children);
-        console.log(data);
-      },
-      // 删除节点
-      remove(root, node, data) {
-        const parentKey = root.find(el => el === node).parent;
-        const parent = root.find(el => el.nodeKey === parentKey).node;
-        const index = parent.children.indexOf(data);
-        parent.children.splice(index, 1);
-      },
-      // 点击编辑
-      editClick(node, data) {
-        this.currentNode = data;
-        this.editFlag = true;
-        this.editValue = "";
-      },
-      //添加节点 弹出输入框
-      appendClick(data) {
-        this.currentNode = data;
-        this.modalFlag = true;
-        this.inputValue = "";
-        console.log(this.common.guid());
-      },
-      // 确认添加节点
-      handleAddNode() {
-        if (this.inputValue != "") {
-          this.append(this.currentNode, this.inputValue);
-        } else {
-          this.modalFlag = false;
-        }
-      },
-      // 修改节点
-      handleUpdateNode() {
-        if (this.editValue != "") {
-          this.currentNode.title = this.editValue;
-        } else {
-          this.editFlag = false;
-        }
-      },
-      // 标题点击收缩展开
-      titleClick(root, node, data, event) {
-        //const parentKey = root.find(el => el === node).parent;
-        //const parent = root.find(el => el.nodeKey === parentKey).node;
-        //const index = parent.children.indexOf(data);
-        //let list = document.getElementsByClassName('singleClass');
-        ////for(let i=0;i<list.length;i++){
-        ////  list[i].style.backgroundColor="transparent";
-        ////}
-        //  this.currentLiNode = node;
-        //  //event.currentTarget.style.backgroundColor = "rgba(225, 224, 224, 0.18)";
-        data.expand = !data.expand;
-      },
-
-      // 根目录点击事件
-      rootClick(data) {
-        data.expand = !data.expand;
-      },
-      // 上移章节操作
-      moveUp(root, node, data) {
-        const parentKey = root.find(el => el === node).parent;
-        const parent = root.find(el => el.nodeKey === parentKey).node;
-        const index = parent.children.indexOf(data);
-        const nodeIndex = root.indexOf(node);
-        let currentTitle = data.title;
-        let currentExpand = data.expand;
-        let currentChildren = data.children || [];
-        let preChildren = (parent.children[index - 1]) ? (parent.children[index - 1]).children : [];
-        if (index != 0) {
-          data.title = parent.children[index - 1].title;
-          parent.children[index - 1].title = currentTitle;
-          parent.children[index - 1].expand = currentExpand;
-          data.children = preChildren;
-          data.expand = parent.children[index - 1].expand;
-          parent.children[index - 1].children = currentChildren;
-        }
-      },
-      // 下移章节操作
-      moveDown(root, node, data) {
-        const parentKey = root.find(el => el === node).parent;
-        const parent = root.find(el => el.nodeKey === parentKey).node;
-        const index = parent.children.indexOf(data);
-        let currentTitle = data.title;
-        let currentChildren = data.children || [];
-        let nextChildren = (parent.children[index + 1]) ? (parent.children[index + 1]).children : [];
-        if (index != parent.children.length - 1) {
-          data.title = parent.children[index + 1].title;
-          data.children = nextChildren;
-          parent.children[index + 1].title = currentTitle;
-          parent.children[index + 1].children = currentChildren;
-        }
-      },
-      // 更多操作
-      handleTools(root, node, data, event) {
-        let toolsDom = event.currentTarget.nextElementSibling;
-        const parentKey = root.find(el => el === node).parent;
-        const parent = root.find(el => el.nodeKey === parentKey).node;
-        const index = parent.children.indexOf(data);
-        let list = document.getElementsByClassName("tools");
-        let cFlag = toolsDom.style.display;
-        for (let i = 0; i < list.length; i++) {
-          list[i].style.display = "none";
-        }
-        // 判断TOOL显示与隐藏
-        if (cFlag == "none") {
-          toolsDom.style.display = "inline-flex";
-          toolsDom.classList.add("animated");
-          toolsDom.classList.add("slideInDown");
-        } else {
-          toolsDom.style.display = "none";
-        }
-      },
-      // 鼠标从工具条移开的时候隐藏
-      hideTools(event) {
-        event.currentTarget.style.display = "none";
-      },
-      handleLiOver(event) {
-        event.currentTarget.lastElementChild.style.display = "block";
-        event.currentTarget.style.backgroundColor = "rgba(225, 224, 224, 0.18)";
-      },
-      handleLiLeave(node, event) {
-        event.currentTarget.lastElementChild.style.display = "none";
-        if (this.currentLiNode.nodeKey != node.nodeKey) {
-          event.currentTarget.style.backgroundColor = "transparent";
-        }
-      },
-      // 添加教材
-      handleAddBook() {
-        this.$api.FindPeriods({}).then(res => {
-          this.periodList = res.result.data;
-          this.periodSelect = this.periodList[0].rowKey;
-          this.periodName = this.periodList[0].name;
-          let Pcode = {
-            value: this.periodList[0].rowKey,
-            label: this.periodList[0].name
-          }
-          this.periodChange(Pcode);
-        })
-        this.addBookFlag = true;
-      },
-
-      // 学段选择变化
-      periodChange(val) {
-        this.$api.FindSubjects({ Pcode: val.value }).then(res => {
-          if (res.result.data.length > 0) {
-            this.subjectList = res.result.data;
-            this.subjectSelect = this.subjectList[0].rowKey;
-            this.periodName = val.label;
-            let Pcode = {
-              value: this.subjectList[0].rowKey,
-              label: this.subjectList[0].name
-            }
-            this.subjectChange(Pcode);
-          }
-        })
-      },
-      // 学科选择变化
-      subjectChange(val) {
-        this.$api.FindEditions({ Pscode: val.value }).then(res => {
-          if (res.result.data.length > 0) {
-            this.versionList = res.result.data;
-            this.versionSelect = this.versionList[0].rowKey;
-            this.subjectName = val.label;
-            let Pcode = {
-              value: this.versionList[0].rowKey,
-              label: this.versionList[0].name
-            }
-            this.versionChange(Pcode);
-          }
-        })
-      },
-      // 版本选择变化
-      versionChange(val) {
-        this.$api.FindTerms({ Psecode: val.value }).then(res => {
-          this.gradeList = res.result.data;
-          this.gradeSelect = this.gradeList.length > 0 ? this.gradeList[0].rowKey : "无";
-          this.versionName = val.label;
-          let Pcode = {
-            value: this.gradeList.length > 0 ? this.gradeList[0].rowKey : "",
-            label: this.gradeList.length > 0 ? this.gradeList[0].name : ""
-          }
-          if (this.gradeList.length > 0) {
-            this.gradeChange(Pcode);
-          }
-        })
-      },
-      //册别选择变化
-      gradeChange(val) {
-        this.gradeName = val.label ? val.label : "";
-      },
-      // 确认添加教材返回教材名称
-      handleAddConfirm() {
-        let periodRowKeys = [];
-        let perioArr = this.periodList;
-        for (let item of perioArr) {
-          periodRowKeys.push(item.rowKey);
-        }
-        let bookName = this.periodName + this.subjectName + this.versionName + this.gradeName;
-        this.treeData[0].title = bookName;
-      }
-    },
-  };
-</script>
-<style scoped>
-  .tree-main {
-    margin-left: 5%;
-    width: 90%;
-  }
-
-  .ivu-icon-ios-paper-outline {
-    font-size: 16px;
-  }
-
-  .ivu-select {
-    width: 80% !important;
-  }
-
-  .slideSelect .ivu-select-selection {
-    height: 40px;
-    background: #d8d8d870;
-    border: 1px solid #808080;
-  }
-
-  .slideSelect, .slideSelect .ivu-icon {
-    color: rgba(255,255,255,.8);
-  }
-
-  .ivu-select-single .ivu-select-selection .ivu-select-selected-value {
-    height: 40px;
-    line-height: 40px;
-    font-size: 14px;
-  }
-  /* .ivu-tree ul li {
-    margin: 18px 0;
-  } */
-  .ivu-tree ul {
-    font-size: 14px;
-  }
-
-  .ivu-tree .ivu-tree-arrow {
-    width: 2%;
-  }
-
-  .ivu-input-wrapper {
-    width: 80% !important;
-  }
-
-  .modelRow {
-    margin: 20px;
-    font-size: 14px;
-  }
-
-  .tools {
-    position: absolute;
-    right: 60px;
-    display: inline-flex;
-    z-index: 999;
-  }
-
-    .tools .ivu-icon {
-      margin-right: 15px;
-      font-size: 20px;
-      font-weight: bold;
-      color: #fff;
-    }
-
-  .btn_more {
-    background: #fff;
-    border: 1px solid rgb(248,248,248);
-  }
-
-  .animated {
-    animation-duration: 0.5s;
-  }
-
-  @-webkit-keyframes slideInDown {
-    from {
-      -webkit-transform: translate3d(0,-10%, 0);
-      transform: translate3d(0, -10%, 0) !important;
-      visibility: visible;
-    }
-
-    to {
-      -webkit-transform: translate3d(0, 0%, 0);
-      transform: translate3d(0, 0%, 0);
-    }
-  }
-
-  @keyframes slideInDown {
-    from {
-      -webkit-transform: translate3d(0, -10%, 0);
-      transform: translate3d(0, -10%, 0) !important;
-      visibility: visible;
-    }
-
-    to {
-      -webkit-transform: translate3d(0, 0%, 0);
-      transform: translate3d(0, 0%, 0);
-    }
-  }
-
-  .slideInDown {
-    -webkit-animation-name: slideInDown;
-    animation-name: slideInDown;
-  }
-
-  .singleClass {
-    display: inline-flex !important;
-    flex-direction: row;
-    align-items: center;
-    height: 50px;
-  }
-
-  .btn-addClass {
-    width: 16%;
-    padding: 10px 6px !important;
-  }
-
-  .ivu-tabs-nav-scroll {
-    display: flex;
-    justify-content: center;
-  }
-
-  .addBookArea .ivu-select {
-    width: 80% !important;
-    margin-left: 30px;
-  }
-
-  .addBookArea .ivu-select-single .ivu-select-selection {
-    height: 32px;
-  }
-
-  .addBookArea .ivu-row {
-    margin: 30px 20px;
-  }
-
-  .addBookArea .ivu-select-selected-value {
-    height: 32px !important;
-    line-height: 32px !important;
-    font-size: 12px !important;
-  }
-
-  .ivu-tabs {
-    overflow: unset;
-  }
-</style>

+ 0 - 768
TEAMModelOS/ClientApp/common/Ztree.vue

@@ -1,768 +0,0 @@
-<template>
-  <div>
-    <Row>
-    <Select v-model="bookSelect" class="slideSelect">
-      <Option v-for="item in slideGradeList" :value="item.value" :key="item.value">{{ item.label }}</Option>
-    </Select>
-      <Button type="primary" class="btn-addClass" @click="handleAddBook">添加课纲</Button>
-    </Row>
-    <Tree :data="treeData" :render="renderContent" ref="tree"></Tree>
-    <Modal v-model="modalFlag" title="添加新节点" ok-text="确认" cancel-text="取消" @on-ok="handleAddNode">
-      <Row class="modelRow">
-        <span>当前章节:
-          <span style="margin-left:10px;">{{currentNode.title}}</span>
-        </span>
-      </Row>
-      <Row class="modelRow">
-        <span>章节类型:</span>
-        <RadioGroup v-model="nodeType" type="button">
-          <Radio label="章节"></Radio>
-          <Radio label="课件"></Radio>
-        </RadioGroup>
-      </Row>
-      <Row class="modelRow">
-        <span>章节名称:</span>
-        <Input v-model="inputValue" placeholder="输入新节点名称" style="width: 100%"/>
-      </Row>
-    </Modal>
-    <Modal v-model="editFlag" title="修改节点" ok-text="确认" cancel-text="取消" @on-ok="handleUpdateNode">
-      <Row class="modelRow">
-        <span>当前名称:
-          <span style="margin-left:10px;">{{currentNode.title}}</span>
-        </span>
-      </Row>
-      <Row class="modelRow">
-        <span>章节类型:</span>
-        <RadioGroup v-model="nodeType" type="button">
-          <Radio label="章节"></Radio>
-          <Radio label="课件"></Radio>
-        </RadioGroup>
-      </Row>
-      <Row class="modelRow">
-        <span>章节名称:</span>
-        <Input v-model="editValue" placeholder="输入节点新名称" style="width: 100%"/>
-      </Row>
-    </Modal>
-    <Modal v-model="addBookFlag" title="添加课纲" ok-text="确认" cancel-text="取消" @on-ok="handleAddConfirm">
-      <Row class="modelRow" >
-          <Tabs value="standard" class="addBookArea" :animated="false">
-              <TabPane label="标准课纲" name="standard">
-                <Row>
-                  <span>学段</span>
-                  <Select v-model="periodSelect" :label-in-value="true"  filterable @on-change="periodChange" placeholder="暂无数据">
-                    <Option v-for="item in periodList" :value="item.rowKey"  :key="item.rowKey">{{ item.name }}</Option>
-                  </Select>
-                </Row>
-                <Row>
-                  <span>学科</span>
-                  <Select v-model="subjectSelect" :label-in-value="true"  filterable @on-change="subjectChange" placeholder="暂无数据">
-                    <Option v-for="item in subjectList" :value="item.rowKey" :key="item.rowKey">{{ item.name }}</Option>
-                  </Select>
-                </Row>
-                <Row>
-                  <span>版本</span>
-                  <Select v-model="versionSelect" :label-in-value="true"  filterable @on-change="versionChange" placeholder="暂无数据">
-                    <Option v-for="item in versionList" :value="item.rowKey" :key="item.rowKey">{{ item.name }}</Option>
-                  </Select>
-                </Row>
-                <Row>
-                  <span>册别</span>
-                  <Select v-model="gradeSelect" :label-in-value="true"  filterable @on-change="gradeChange" placeholder="暂无数据">
-                    <Option v-for="item in gradeList" :value="item.rowKey" :key="item.rowKey">{{ item.name }}</Option>
-                  </Select>
-                </Row>
-              </TabPane>
-              <TabPane label="校本课纲" name="custom" >标签二的内容</TabPane>
-          </Tabs>
-      </Row>
-    </Modal>
-  </div>
-</template>
-<script>
-export default {
-  data() {
-    return {
-      bookSelect: "语文人教课标版四年级上册",
-      periodList:[],
-      subjectList:[],
-      versionList:[],
-      gradeList: [],
-      slideGradeList: [
-        {
-          value: "语文人教课标版四年级上册",
-          label: "语文人教课标版四年级上册"
-        },
-        {
-          value: "语文人教课标版五年级上册",
-          label: "语文人教课标版五年级上册"
-        },
-        {
-          value: "语文人教课标版六年级上册",
-          label: "语文人教课标版六年级上册"
-        },
-        {
-          value: "语文人教课标版七年级上册",
-          label: "语文人教课标版七年级上册"
-        },
-        {
-          value: "语文人教课标版八年级上册",
-          label: "语文人教课标版八年级上册"
-        },
-        {
-          value: "语文人教课标版九年级上册",
-          label: "语文人教课标版九年级上册"
-        }
-      ],
-      treeData: [
-        {
-          title: "语文人教课标版四年级上册",
-          order: 0,
-          expand: true,
-          render: (h, { root, node, data }) => {
-            return h(
-              "span",
-              {
-                style: {
-                  display: "inline-block",
-                  position:"relative",
-                  width: "94%",
-                  textAlign: "left",
-                  marginLeft: "2%",
-                  cursor: "pointer",
-                  height:"40px",
-                  lineHeight:"40px"
-                },
-                on: {
-                  click: () => {
-                    this.rootClick(data);
-                  }
-                }
-              },
-              [
-                h("span", [
-                  h("Icon", {
-                    props: {
-                      type: "md-filing"
-                    },
-                    style: {
-                      marginRight: "5px",
-                      marginBottom: "5px"
-                    }
-                  }),
-                  h("span", { on: { click: () => {} } }, data.title)
-                ]),
-
-                    h("Button", {
-                      props: Object.assign({}, this.buttonProps, {
-                        icon: "ios-add",
-                        type: "primary"
-                      }),
-                      style: {
-                        position: "absolute",
-                        right: "30px",
-                        top:"10px",
-                        padding:"0 10px"
-                      },
-                      on: {
-                        click: e => {
-                          e.stopPropagation();
-                          this.appendClick(data);
-                        }
-                      }
-                    })
-                  
-                
-              ]
-            );
-          },
-          children: [
-            {
-              title: "第一章语文语文",
-              order: 0,
-              expand: true,
-              children: [
-                {
-                  title: "大苏打",
-                  order: 0,
-                  expand: true,
-                  children: []
-                },
-                {
-                  title: "三大",
-                  order: 1,
-                  expand: true,
-                  children: []
-                }
-              ]
-            },
-            {
-              title: "第二章",
-              expand: true,
-              order: 1,
-              children: [
-                {
-                  title: "第一节",
-                  order: 0,
-                  expand: true,
-                  children: []
-                },
-                {
-                  title: "第二节",
-                  order: 1,
-                  expand: true,
-                  children:[]
-                },
-                {
-                  title: "第三节",
-                  order: 2,
-                  expand: true,
-                  children: []
-                }
-              ]
-            },
-            {
-              title: "第三章",
-              expand: true,
-              order: 1,
-              children: []
-            }
-          ]
-        }
-      ],
-      inputValue: "",
-      editValue: "",
-      modalFlag: false,
-      editFlag: false,
-      addBookFlag:false,
-      nodeType: "章节",
-      currentNode: "",
-      currentLiNode:"",
-      buttonProps: {
-        type: "default",
-        size: "small"
-      },
-      periodSelect:"",
-      subjectSelect:"",
-      versionSelect:"",
-      gradeSelect: "",
-      periodName: "",
-      subjectName:"",
-      versionName:"",
-      gradeName:"",
-    };
-  },
-  
-  methods: {
-    renderContent(h, { root, node, data }) {
-      let that = this;
-      return h(
-        "span",
-        {
-          style: {
-            display: "inline-block",
-            width: "95%",
-            textAlign: "left",
-            paddingLeft: "2%",
-            cursor: "pointer",
-            position: "relative",
-            boxSizing:"border-box"
-          },
-          domProps: {
-            className: "singleClass"
-          },
-          on: {
-            click: () => {
-              this.titleClick(root, node, data, event);
-            },
-            mouseover: e => {
-                  e.stopPropagation();
-                  this.handleLiOver(event);
-              },
-            mouseleave:e =>{
-                  e.stopPropagation();
-                  this.handleLiLeave(node,event);
-            }
-          }
-        },
-        [
-          h("span", [
-            h("Icon", {
-              props: {
-                type:
-                  data.children && data.children.length > 0
-                    ? "md-albums"
-                    : "ios-paper-outline"
-              },
-              style: {
-                marginRight: "5px"
-              }
-            }),
-            h("span", data.title)
-          ]),
-          h(
-            "button",
-            {
-              style: {
-                position: "absolute",
-                right: "30px",
-              },
-              domProps: {
-                className: "ivu-btn ivu-btn-default ivu-btn-small btn-more"
-              },
-              on: {
-                click: e => {
-                  e.stopPropagation();
-                  this.handleTools(root, node, data, event);
-                }
-              }
-            },
-            [
-              h(
-                "span",
-                {
-                  style: {
-                    float: "right",
-                    fontWeight:"bold",
-                    letterSpacing:"1px"
-                  }
-                },
-                "..."
-              )
-            ]
-          ),
-          h(
-            "span",
-            {
-              style: {
-                display: "none",
-                float: "right",
-                top:"10px"
-              },
-              on:{
-                mouseleave: e => {
-                  e.stopPropagation();
-                  this.hideTools(event);
-                },
-              },
-              domProps: {
-                className: "tools"
-              }
-            },
-            [
-              h(
-                "Button",
-                {
-                  props: Object.assign({}, this.buttonProps, {
-                    icon: "ios-add"
-                  }),
-                  style: {
-                    marginRight: "5px"
-                  },
-                  on: {
-                    click: e => {
-                      e.stopPropagation();
-                      this.appendClick(data);
-                    }
-                  }
-                },
-                "添加"
-              ),
-              h(
-                "Button",
-                {
-                  props: Object.assign({}, this.buttonProps, {
-                    icon: "ios-remove"
-                  }),
-                  style: {
-                    marginRight: "5px"
-                  },
-                  on: {
-                    click: e => {
-                      e.stopPropagation();
-                      this.remove(root, node, data);
-                    }
-                  }
-                },
-                "移除"
-              ),
-              h(
-                "Button",
-                {
-                  props: Object.assign({}, this.buttonProps, {
-                    icon: "ios-arrow-round-up"
-                  }),
-                  style: {
-                    marginRight: "5px"
-                  },
-                  on: {
-                    click: e => {
-                      e.stopPropagation();
-                      this.moveUp(root, node, data);
-                    }
-                  }
-                },
-                "上移"
-              ),
-              h(
-                "Button",
-                {
-                  props: Object.assign({}, this.buttonProps, {
-                    icon: "ios-arrow-round-down"
-                  }),
-                  style: {
-                    marginRight: "5px"
-                  },
-                  on: {
-                    click: e => {
-                      e.stopPropagation();
-                      this.moveDown(root, node, data);
-                    }
-                  }
-                },
-                "下移"
-              ),
-              h(
-                "Button",
-                {
-                  props: Object.assign({}, this.buttonProps, {
-                    icon: "ios-create-outline"
-                  }),
-                  style: {
-                    marginRight: "5px"
-                  },
-                  on: {
-                    click: e => {
-                      e.stopPropagation();
-                      this.editClick(node, data);
-                    }
-                  }
-                },
-                "编辑"
-              )
-            ]
-          )
-        ]
-      );
-    },
-    // 添加节点
-    append(data, value) {
-      const children = data.children || [];
-      children.push({
-        title: value,
-        order: children.length,
-        children: [],
-        expand: true
-      });
-      this.$set(data, "children", children);
-      console.log(data);
-    },
-    // 删除节点
-    remove(root, node, data) {
-      const parentKey = root.find(el => el === node).parent;
-      const parent = root.find(el => el.nodeKey === parentKey).node;
-      const index = parent.children.indexOf(data);
-      parent.children.splice(index, 1);
-    },
-    // 点击编辑
-    editClick(node, data) {
-      this.currentNode = data;
-      this.editFlag = true;
-      this.editValue = "";
-    },
-    //添加节点 弹出输入框
-    appendClick(data) {
-      this.currentNode = data;
-      this.modalFlag = true;
-      this.inputValue = "";
-      console.log(this.common.guid());
-    },
-    // 确认添加节点
-    handleAddNode() {
-      if (this.inputValue != "") {
-        this.append(this.currentNode, this.inputValue);
-      } else {
-        this.modalFlag = false;
-      }
-    },
-    // 修改节点
-    handleUpdateNode() {
-      if (this.editValue != "") {
-        this.currentNode.title = this.editValue;
-      } else {
-        this.editFlag = false;
-      }
-    },
-    // 标题点击收缩展开
-    titleClick(root, node, data,event) {
-        const parentKey = root.find(el => el === node).parent;
-        const parent = root.find(el => el.nodeKey === parentKey).node;
-        const index = parent.children.indexOf(data);
-        let list = document.getElementsByClassName('singleClass');
-        for(let i=0;i<list.length;i++){
-          list[i].style.backgroundColor="transparent";
-          list[i].style.color="#515a6e";
-        }
-          this.currentLiNode = node;
-          event.currentTarget.style.backgroundColor = "rgb(84, 165, 255)";
-          event.currentTarget.style.color = "rgb(255, 255, 255)";
-          data.expand = !data.expand;
-    },
-
-    // 根目录点击事件
-    rootClick(data) { 
-      data.expand = !data.expand;
-    },
-    // 上移章节操作
-    moveUp(root, node, data) {
-      const parentKey = root.find(el => el === node).parent;
-      const parent = root.find(el => el.nodeKey === parentKey).node;
-      const index = parent.children.indexOf(data);
-      const nodeIndex = root.indexOf(node);
-      let currentTitle = data.title;
-      let currentExpand = data.expand;
-      let currentChildren = data.children || [];
-      let preChildren = (parent.children[index - 1])?(parent.children[index - 1]).children:[];
-      if (index != 0) {
-        data.title = parent.children[index - 1].title;
-        parent.children[index - 1].title = currentTitle;
-        parent.children[index - 1].expand = currentExpand;
-        data.children = preChildren;
-        data.expand = parent.children[index - 1].expand;
-        parent.children[index - 1].children = currentChildren;
-      }
-    },
-    // 下移章节操作
-    moveDown(root, node, data) {
-      const parentKey = root.find(el => el === node).parent;
-      const parent = root.find(el => el.nodeKey === parentKey).node;
-      const index = parent.children.indexOf(data);
-      let currentTitle = data.title;
-      let currentChildren = data.children || [];
-      let nextChildren = (parent.children[index + 1])?(parent.children[index + 1]).children:[];
-      if (index != parent.children.length - 1) {
-        data.title = parent.children[index + 1].title;
-        data.children = nextChildren;
-        parent.children[index + 1].title = currentTitle;
-        parent.children[index + 1].children = currentChildren;
-      }
-    },
-    // 更多操作
-    handleTools(root, node, data, event) {
-      let toolsDom = event.currentTarget.nextElementSibling;
-      const parentKey = root.find(el => el === node).parent;
-      const parent = root.find(el => el.nodeKey === parentKey).node;
-      const index = parent.children.indexOf(data);
-      let list = document.getElementsByClassName("tools");
-      let cFlag = toolsDom.style.display;
-      for(let i=0;i<list.length;i++){
-        list[i].style.display = "none";
-      }
-        // 判断TOOL显示与隐藏
-      if (cFlag == "none") {
-        toolsDom.style.display = "inline-flex";
-        toolsDom.classList.add("animated");
-        toolsDom.classList.add("slideInDown");
-      } else {
-        toolsDom.style.display = "none";
-      }
-    },
-    // 鼠标从工具条移开的时候隐藏
-    hideTools(event){
-        event.currentTarget.style.display = "none";
-    },
-    handleLiOver(event){
-        event.currentTarget.style.backgroundColor = "rgb(84, 165, 255)";
-        event.currentTarget.style.color = "rgb(255, 255, 255)";
-    },
-    handleLiLeave(node,event){
-      if(this.currentLiNode.nodeKey != node.nodeKey){
-        event.currentTarget.style.backgroundColor = "transparent";
-        event.currentTarget.style.color = "#515a6e";
-      }
-    },
-    // 添加教材
-    handleAddBook() {
-      this.$api.FindPeriods({}).then(res => {
-        this.periodList = res.result.data;
-        this.periodSelect = this.periodList[0].rowKey;
-        this.periodName = this.periodList[0].name;
-        let Pcode = {
-          value: this.periodList[0].rowKey,
-          label: this.periodList[0].name
-        }
-        this.periodChange(Pcode);
-      })
-      this.addBookFlag = true;
-    },
-
-    // 学段选择变化
-    periodChange(val) {
-      this.$api.FindSubjects({ Pcode: val.value }).then(res => {
-        if (res.result.data.length > 0) {
-          this.subjectList = res.result.data;
-          this.subjectSelect = this.subjectList[0].rowKey;
-          this.periodName = val.label;
-          let Pcode = {
-            value: this.subjectList[0].rowKey,
-            label: this.subjectList[0].name
-          }
-          this.subjectChange(Pcode);
-        }
-      })
-    }, 
-    // 学科选择变化
-    subjectChange(val) {
-      this.$api.FindEditions({ Pscode: val.value }).then(res => {
-        if (res.result.data.length > 0) {
-          this.versionList = res.result.data;
-          this.versionSelect = this.versionList[0].rowKey;
-          this.subjectName = val.label;
-          let Pcode = {
-            value: this.versionList[0].rowKey,
-            label: this.versionList[0].name
-          }
-          this.versionChange(Pcode);
-          }
-        })
-    },
-    // 版本选择变化
-    versionChange(val) {
-      this.$api.FindTerms({ Psecode: val.value }).then(res => {
-        this.gradeList = res.result.data;
-        this.gradeSelect = this.gradeList.length > 0 ? this.gradeList[0].rowKey : "无";
-        this.versionName = val.label;
-        let Pcode = {
-          value: this.gradeList.length > 0 ? this.gradeList[0].rowKey:"",
-          label: this.gradeList.length > 0 ? this.gradeList[0].name : ""
-        }
-        if (this.gradeList.length > 0) {
-          this.gradeChange(Pcode);
-        }
-      })
-    },
-    //册别选择变化
-    gradeChange(val) {
-      this.gradeName = val.label ? val.label : "";
-    },
-    // 确认添加教材返回教材名称
-    handleAddConfirm() {
-      let periodRowKeys = [];
-      let perioArr = this.periodList;
-      for (let item of perioArr) {
-        periodRowKeys.push(item.rowKey);
-      }
-      console.log(this.periodName + this.subjectName + this.versionName + this.gradeName);
-    }
-  },
-};
-</script>
-<style scoped>
-.ivu-icon-ios-paper-outline {
-  font-size: 16px;
-}
-.ivu-select {
-  width: 69% !important;
-}
-.ivu-select-single .ivu-select-selection {
-  height: 40px;
-}
-.ivu-select-single .ivu-select-selection .ivu-select-selected-value {
-  height: 40px;
-  line-height: 40px;
-  font-size: 14px;
-}
-/* .ivu-tree ul li {
-  margin: 18px 0;
-} */
-.ivu-tree ul {
-  font-size: 14px;
-}
-.ivu-tree .ivu-tree-arrow{
-  width: 2%;
-  margin-right: 2%;
-}
-.ivu-input-wrapper {
-  width: 70% !important;
-}
-.modelRow {
-  margin: 20px;
-  font-size: 14px;
-}
-.tools {
-  position: absolute;
-  right: 60px;
-  display: inline-flex;
-  flex-direction: column;
-  z-index: 999;
-}
-.btn_more{
-  background: #fff;
-  border: 1px solid rgb(248,248,248);
-}
-.animated {
-  animation-duration: 0.5s;
-}
-@-webkit-keyframes slideInDown {
-  from {
-    -webkit-transform: translate3d(0,-10%, 0);
-    transform: translate3d(0, -10%, 0) !important;
-    visibility: visible;
-  }
-
-  to {
-    -webkit-transform: translate3d(0, 0%, 0);
-    transform: translate3d(0, 0%, 0);
-  }
-}
-
-@keyframes slideInDown {
-  from {
-    -webkit-transform: translate3d(0, -10%, 0);
-    transform: translate3d(0, -10%, 0) !important;
-    visibility: visible;
-  }
-
-  to {
-    -webkit-transform: translate3d(0, 0%, 0);
-    transform: translate3d(0, 0%, 0);
-  }
-}
-
-.slideInDown {
-  -webkit-animation-name: slideInDown;
-  animation-name: slideInDown;
-}
-.singleClass{
-  display: inline-flex !important;
-  flex-direction: row;
-  align-items: center;
-  height: 40px;
-}
-
-.btn-addClass{
-  width: 29%;
-  padding: 9px 6px !important;
-}
-.ivu-tabs-nav-scroll{
-  display: flex;
-  justify-content: center;
-}
-.addBookArea .ivu-select{
-  width: 80% !important;
-  margin-left: 30px;
-}
-.addBookArea .ivu-select-single .ivu-select-selection{
-  height: 32px;
-} 
-.addBookArea .ivu-row{
-  margin: 30px 20px;
-}
-.addBookArea .ivu-select-selected-value{
-  height: 32px !important;
-  line-height: 32px !important;
-  font-size: 12px !important;
-}
-.ivu-tabs{
-  overflow: unset;
-}
-</style>

TEAMModelOS/ClientApp/common/SelectModule.vue → TEAMModelOS/ClientApp/components/syllabus/SelectModule.vue


TEAMModelOS/ClientApp/common/SelectSchool.vue → TEAMModelOS/ClientApp/components/syllabus/SelectSchool.vue


+ 81 - 195
TEAMModelOS/ClientApp/common/Tree.vue

@@ -44,6 +44,7 @@
 </template>
 </template>
 <script>
 <script>
   export default {
   export default {
+    props: ["treeDatas", "volumeCode"],
     data() {
     data() {
       return {
       return {
         bookSelect: "语文人教课标版四年级上册",
         bookSelect: "语文人教课标版四年级上册",
@@ -52,157 +53,7 @@
         versionList: [],
         versionList: [],
         gradeList: [],
         gradeList: [],
         slideGradeList: [],
         slideGradeList: [],
-        treeData: [
-          {
-            title: "语文人教课标版四年级上册",
-            order: 0,
-            expand: true,
-            render: (h, { root, node, data }) => {
-              return h(
-                "span",
-                {
-                  style: {
-                    display: "inline-block",
-                    position: "relative",
-                    width: "94%",
-                    textAlign: "left",
-                    paddingLeft: "10px",
-                    cursor: "pointer",
-                    height: "50px",
-                    lineHeight: "50px"
-                  },
-                  on: {
-                    click: () => {
-                      this.rootClick(data);
-                    }
-                  }
-                },
-                [
-                  h("span", [
-                    h("Icon", {
-                      props: {
-                        type: "md-filing"
-                      },
-                      style: {
-                        marginRight: "5px",
-                        display: "none"
-                      }
-                    }),
-                    h("span", { on: { click: () => { } } }, data.title)
-                  ]),
-
-                  h("Button", {
-                    props: {
-                      icon: "md-add"
-                    },
-                    style: {
-                      position: "absolute",
-                      right: "30px",
-                      top: "15px",
-                      padding: "0 10px"
-                    },
-                    on: {
-                      click: e => {
-                        e.stopPropagation();
-                        this.appendClick(data);
-                      }
-                    }
-                  })
-
-
-                ]
-              );
-            },
-            children: [
-              {
-                title: "第一组",
-                order: 0,
-                expand: true,
-                children: [
-                  {
-                    title: "文言文两则",
-                    order: 0,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "匆匆",
-                    order: 1,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "桃花心木",
-                    order: 0,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "顶碗少年",
-                    order: 1,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "手指",
-                    order: 0,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "北京的春节",
-                    order: 1,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "各具特色的民居",
-                    order: 0,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "和田的维吾尔",
-                    order: 1,
-                    expand: true,
-                    children: []
-                  }
-                ]
-              },
-              {
-                title: "第二组",
-                expand: true,
-                order: 1,
-                children: [
-                  {
-                    title: "十六年前的回忆",
-                    order: 0,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "灯光",
-                    order: 1,
-                    expand: true,
-                    children: []
-                  },
-                  {
-                    title: "为人民服务",
-                    order: 2,
-                    expand: true,
-                    children: []
-                  }
-                ]
-              },
-              {
-                title: "第三组",
-                expand: true,
-                order: 1,
-                children: []
-              }
-            ]
-          }
-        ],
+        treeData: [],
         inputValue: "",
         inputValue: "",
         editValue: "",
         editValue: "",
         modalFlag: false,
         modalFlag: false,
@@ -225,7 +76,9 @@
         gradeName: "",
         gradeName: "",
       };
       };
     },
     },
-
+    created() {
+      this.treeData = this.treeDatas;
+    },
     methods: {
     methods: {
       renderContent(h, { root, node, data }) {
       renderContent(h, { root, node, data }) {
         let that = this;
         let that = this;
@@ -272,14 +125,14 @@
                   display: "none"
                   display: "none"
                 }
                 }
               }),
               }),
-              h("span", data.nodeKey + '. ' + data.title)
+              h("span", data.title)
             ]),
             ]),
             h(
             h(
               "span",
               "span",
               {
               {
                 style: {
                 style: {
                   float: "right",
                   float: "right",
-                  top: "10px",
+                  top: "6px",
                   display: "none"
                   display: "none"
                 },
                 },
                 on: {
                 on: {
@@ -372,14 +225,24 @@
       // 添加节点
       // 添加节点
       append(data, value) {
       append(data, value) {
         const children = data.children || [];
         const children = data.children || [];
-        children.push({
+        let newChild = {
           title: value,
           title: value,
           order: children.length,
           order: children.length,
+          pid: data.rowKey,
           children: [],
           children: [],
-          expand: true
-        });
+          expand: true,
+          type: data.type,
+          volumeCode: this.volumeCode,
+          remark: "备注",
+        }
+        children.push(newChild);
         this.$set(data, "children", children);
         this.$set(data, "children", children);
-        console.log(data);
+        this.$api.SaveOrUpdateSingleNode(newChild).then(res => {
+          this.$Message.success("添加成功");
+          this.$api.FindSyllabusByVolumeCode({ VolumeCode: this.volumeCode, Status: 1 }).then(res => {
+            this.treeData = res.result.data;
+          })
+        })
       },
       },
       // 删除节点
       // 删除节点
       remove(root, node, data) {
       remove(root, node, data) {
@@ -387,6 +250,10 @@
         const parent = root.find(el => el.nodeKey === parentKey).node;
         const parent = root.find(el => el.nodeKey === parentKey).node;
         const index = parent.children.indexOf(data);
         const index = parent.children.indexOf(data);
         parent.children.splice(index, 1);
         parent.children.splice(index, 1);
+        data.status = 0;
+        this.$api.SaveOrUpdateSingleNode(data).then(res => {
+          this.$Message.success("删除成功");
+        })
       },
       },
       // 点击编辑
       // 点击编辑
       editClick(node, data) {
       editClick(node, data) {
@@ -399,7 +266,6 @@
         this.currentNode = data;
         this.currentNode = data;
         this.modalFlag = true;
         this.modalFlag = true;
         this.inputValue = "";
         this.inputValue = "";
-        console.log(this.common.guid());
       },
       },
       // 确认添加节点
       // 确认添加节点
       handleAddNode() {
       handleAddNode() {
@@ -412,7 +278,10 @@
       // 修改节点
       // 修改节点
       handleUpdateNode() {
       handleUpdateNode() {
         if (this.editValue != "") {
         if (this.editValue != "") {
-          this.currentNode.title = this.editValue;
+          this.$api.SaveOrUpdateSingleNode(this.currentNode).then(res => {
+            this.$Message.success("修改成功");
+            this.currentNode.title = this.editValue;
+          })
         } else {
         } else {
           this.editFlag = false;
           this.editFlag = false;
         }
         }
@@ -428,36 +297,52 @@
       },
       },
       // 上移章节操作
       // 上移章节操作
       moveUp(root, node, data) {
       moveUp(root, node, data) {
+        let that = this;
         const parentKey = root.find(el => el === node).parent;
         const parentKey = root.find(el => el === node).parent;
         const parent = root.find(el => el.nodeKey === parentKey).node;
         const parent = root.find(el => el.nodeKey === parentKey).node;
         const index = parent.children.indexOf(data);
         const index = parent.children.indexOf(data);
-        const nodeIndex = root.indexOf(node);
-        let currentTitle = data.title;
-        let currentExpand = data.expand;
-        let currentChildren = data.children || [];
-        let preChildren = (parent.children[index - 1]) ? (parent.children[index - 1]).children : [];
+        let currentOrder = data.order;
         if (index != 0) {
         if (index != 0) {
-          data.title = parent.children[index - 1].title;
-          parent.children[index - 1].title = currentTitle;
-          parent.children[index - 1].expand = currentExpand;
-          data.children = preChildren;
-          data.expand = parent.children[index - 1].expand;
-          parent.children[index - 1].children = currentChildren;
+          if (data.order == parent.children[index - 1].order) {
+            data.order = data.order + 1;
+          } else {
+            data.order = parent.children[index - 1].order;
+            parent.children[index - 1].order = currentOrder;
+          }
+          that.$api.SaveOrUpdateSingleNode(data);
+          that.$api.SaveOrUpdateSingleNode(parent.children[index - 1]);
+          //移动后刷新数据
+          setTimeout(function () {
+            that.$api.FindSyllabusByVolumeCode({ VolumeCode: that.volumeCode, Status: 1 }).then(res => {
+              that.treeData = res.result.data;
+            })
+          }, 500)
+
+
         }
         }
       },
       },
       // 下移章节操作
       // 下移章节操作
       moveDown(root, node, data) {
       moveDown(root, node, data) {
+        let that = this;
         const parentKey = root.find(el => el === node).parent;
         const parentKey = root.find(el => el === node).parent;
         const parent = root.find(el => el.nodeKey === parentKey).node;
         const parent = root.find(el => el.nodeKey === parentKey).node;
         const index = parent.children.indexOf(data);
         const index = parent.children.indexOf(data);
-        let currentTitle = data.title;
-        let currentChildren = data.children || [];
-        let nextChildren = (parent.children[index + 1]) ? (parent.children[index + 1]).children : [];
+        let currentOrder = data.order;
         if (index != parent.children.length - 1) {
         if (index != parent.children.length - 1) {
-          data.title = parent.children[index + 1].title;
-          data.children = nextChildren;
-          parent.children[index + 1].title = currentTitle;
-          parent.children[index + 1].children = currentChildren;
+          if (data.order == parent.children[index + 1].order) {
+            data.order = data.order - 1;
+          } else {
+            data.order = parent.children[index + 1].order;
+            parent.children[index + 1].order = currentOrder;
+          }
+          that.$api.SaveOrUpdateSingleNode(data);
+          that.$api.SaveOrUpdateSingleNode(parent.children[index + 1]);
+          //移动后刷新数据
+          setTimeout(function () {
+            that.$api.FindSyllabusByVolumeCode({ VolumeCode: that.volumeCode, Status: 1 }).then(res => {
+              that.treeData = res.result.data;
+            })
+          }, 500)
         }
         }
       },
       },
       // 更多操作
       // 更多操作
@@ -579,13 +464,13 @@
     width: 90%;
     width: 90%;
   }
   }
 
 
-  .ivu-icon-ios-paper-outline {
-    font-size: 16px;
-  }
+    .tree-main /deep/ .ivu-icon-ios-paper-outline {
+      font-size: 16px;
+    }
 
 
-  .ivu-select {
-    width: 80% !important;
-  }
+    .tree-main /deep/ .ivu-select {
+      width: 80% !important;
+    }
 
 
   .slideSelect .ivu-select-selection {
   .slideSelect .ivu-select-selection {
     height: 40px;
     height: 40px;
@@ -597,7 +482,7 @@
     color: rgba(255,255,255,.8);
     color: rgba(255,255,255,.8);
   }
   }
 
 
-  .ivu-select-single .ivu-select-selection .ivu-select-selected-value {
+  .tree-main /deep/ .ivu-select-single .ivu-select-selection .ivu-select-selected-value {
     height: 40px;
     height: 40px;
     line-height: 40px;
     line-height: 40px;
     font-size: 14px;
     font-size: 14px;
@@ -605,13 +490,13 @@
   /* .ivu-tree ul li {
   /* .ivu-tree ul li {
     margin: 18px 0;
     margin: 18px 0;
   } */
   } */
-  .ivu-tree ul {
+  .tree-main /deep/ .ivu-tree ul {
     font-size: 14px;
     font-size: 14px;
   }
   }
 
 
-  .ivu-tree ul li {
-    margin:8px 0 !important;
-  }
+    .tree-main /deep/ .ivu-tree ul li {
+      margin: 8px 0;
+    }
 
 
   .ivu-tree .ivu-tree-arrow {
   .ivu-tree .ivu-tree-arrow {
     width: 2%;
     width: 2%;
@@ -629,16 +514,17 @@
   .tree-main /deep/ .tools {
   .tree-main /deep/ .tools {
     position: absolute;
     position: absolute;
     right: 60px;
     right: 60px;
+    bottom: 5px;
     display: inline-flex;
     display: inline-flex;
     z-index: 999;
     z-index: 999;
   }
   }
 
 
-  .tree-main /deep/ .tools .ivu-icon {
-    margin-right: 15px;
-    font-size: 16px;
-    font-weight: 200;
-    color: #808080;
-  }
+    .tree-main /deep/ .tools .ivu-icon {
+      margin-right: 15px;
+      font-size: 16px;
+      font-weight: 200;
+      color: #808080;
+    }
 
 
   .btn_more {
   .btn_more {
     background: #fff;
     background: #fff;

+ 6 - 59
TEAMModelOS/ClientApp/router/routes.js

@@ -23,68 +23,15 @@ export const routes = [
     component: resolve => require(['@/view/student-analysis/index/SAteach.vue'], resolve),
     component: resolve => require(['@/view/student-analysis/index/SAteach.vue'], resolve),
   },
   },
   {
   {
-    name:'total',
+    name: 'total',
     path: '/total',
     path: '/total',
-    component: resolve => require(['@/view/student-analysis/total-analysis/SAtotal.vue'],resolve),
+    component: resolve => require(['@/view/student-analysis/total-analysis/SAtotal.vue'], resolve),
   },
   },
   // { name: 'HTTP404', path: '/*', component: HTTP404, display: 'Home', icon: 'home' },
   // { name: 'HTTP404', path: '/*', component: HTTP404, display: 'Home', icon: 'home' },
+
+
   {
   {
-    path: '/Syllabus',
-    component: resolve => require(['@/view/SyIndex.vue'], resolve), //路由懒加载
-    children: [
-      {
-        path: '/',
-        component: resolve => require(['@/view/syllabus/BaseContent.vue'], resolve),
-      },
-      {
-        path: '/BaseContent',
-        component: resolve => require(['@/view/syllabus/BaseContent.vue'], resolve),
-      },
-      {
-        path: '/BasePreview',
-        component: resolve => require(['@/view/syllabus/BasePreview.vue'], resolve),
-      },
-      {
-        path: '/BasePrepare',
-        component: resolve => require(['@/view/syllabus/BasePrepare.vue'], resolve),
-      },
-    ]
-  },
-  {
-    path: '/authorization',
-    component: resolve => require(['@/view/authorization.vue'], resolve), //路由懒加载
-  },
-  {
-    path: '/SyIndex',
-    component: resolve => require(['@/view/syllabus/Syllabus.vue'], resolve), //路由懒加载
-    children: [
-      {
-        path: '/',
-        component: resolve => require(['@/common/SyTree.vue'], resolve),
-      },
-      {
-        path: '/BaseKnowPoint',
-        component: resolve => require(['@/view/syllabus/BaseKnowPoint.vue'], resolve),
-      }
-    ]
-  },
-  {
-    path: '/SAK',
-    component: resolve => require(['@/view/sak/Syllabus.vue'], resolve), //路由懒加载
-    children: [
-      {
-        path: '/',
-        component: resolve => require(['@/common/SyTree.vue'], resolve),
-      },
-      {
-        path: '/BaseKnowPoint',
-        component: resolve => require(['@/view/syllabus/BaseKnowPoint.vue'], resolve),
-      }
-    ]
-  },
-  //评测
-   {
-    path: '/evaluation',
-    component: resolve => require(['@/view/evaluation/index.vue'], resolve), //路由懒加载
+    path: '/syllabus',
+    component: resolve => require(['@/view/syllabus/index/index.vue'], resolve), //路由懒加载
   }
   }
 ]
 ]

+ 0 - 69
TEAMModelOS/ClientApp/view/SyIndex.vue

@@ -1,69 +0,0 @@
-<template>
-    <div class="index">
-      <div class="header_box">
-        <SyHeader></SyHeader>
-      </div>
-      <div class="ztree_box">
-        <Ztree></Ztree>
-      </div>
-      <div class="select_box">
-      	<router-view></router-view>
-      </div>
-    </div>
-</template>
-<script>
-  import SyHeader from '@/common/SyHeader.vue'
-  import Ztree from '@/common/Ztree.vue'
-  import BaseContent from '@/view/syllabus/BaseContent.vue'
-  import BasePreview from '@/view/syllabus/BasePreview.vue'
-  import BasePrepare from '@/view/syllabus/BasePrepare.vue'
-    export default {
-      name: "app",
-      components:{
-        SyHeader,
-        Ztree,
-        BaseContent,
-        BasePreview,
-        BasePrepare
-      },
-      data(){
-        return{
-          ys_box:'display:inline',
-          ys:'display:none',
-        }
-      },
-      methods:{
-
-      },
-    }
-</script>
-<style scoped>
-.index{
-  width:100%;
-  height:auto;
-  min-width: 1366px;
-  -o-user-select: none;
-  -moz-user-select: none; /*火狐 firefox*/
-  -webkit-user-select: none; /*webkit浏览器*/
-  -ms-user-select: none; /*IE10+*/
-  -khtml-user-select :none; /*早期的浏览器*/
-  user-select: none; 
-}
-.header_box{
-  width:100%;
-  height:140px;
-}
-.ztree_box{
-  width:19%;
-  min-height:840px;
-  padding-left: 15px;
-  padding-top:1% ;
-  float: left;
-}
-.select_box,.modification_box{
-  width:81%;
-  float: left;
-  border-left: 1px rgb(228, 228, 228) solid;
-  min-height: 840px;
-}
-</style>

+ 0 - 48
TEAMModelOS/ClientApp/view/authorization.vue

@@ -1,48 +0,0 @@
-<template>
-  <div id="app">
-    <div class="main-content">
-      <SelectSchool></SelectSchool>
-    </div>
-  </div>
-</template>
-<script>
-  import SelectSchool from '@/common/SelectSchool.vue'
-  import animate from 'animate.css'
-  export default {
-    components: {
-      SelectSchool
-    },
-    data() {
-      return {
-        isLogin: false,
-        username: ""
-      }
-    },
-    create() {
-        this.isLogin = localStorage.getItem('username');
-    },
-    methods: {
-      
-    },
-    mounted() {
-    }
-  }
-</script>
-<style>
-  html, body, #app {
-    height: 100% !important;
-  }
-
-  .main-content {
-    position: relative;
-    width: 100%;
-    min-width: 1200px;
-    background: url("http://chq.dygl.pujiaoyun.cn/static/img/banner.jpg") center 100% no-repeat;
-    height: 100%;
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-    padding-top: 150px;
-  }
-
-</style>

+ 9 - 4
TEAMModelOS/ClientApp/view/evaluation/index.vue

@@ -1,13 +1,18 @@
 <template>
 <template>
-  <div>
-    <test></test>
+  <div class="evaluation">
+    <div class="ev-header">
+      <Header></Header>
+    </div>
+    <div class="ev-body">
+      <h1>评测活动</h1>
+    </div>    
   </div>
   </div>
 </template>
 </template>
 <script>
 <script>
-  import test from '@/components/evaluation/index.vue'
+  import Header from '@/common/headers.vue'
   export default {
   export default {
     components: {
     components: {
-    test
+      Header
     },
     },
   }
   }
 </script>
 </script>

+ 3 - 3
TEAMModelOS/ClientApp/view/index.vue

@@ -43,7 +43,7 @@
 </template>
 </template>
 <script>
 <script>
   import animate from 'animate.css'
   import animate from 'animate.css'
-  import SelectModule from '@/common/SelectModule.vue'
+  import SelectModule from '@/components/syllabus/SelectModule.vue'
   export default {
   export default {
     components: {
     components: {
       SelectModule
       SelectModule
@@ -57,13 +57,13 @@
         schoolInfo: {},
         schoolInfo: {},
         preFlag: false,
         preFlag: false,
         currentRole: "",
         currentRole: "",
-        roleInfo:[],
+        roleInfo: [],
         moduleList: [{
         moduleList: [{
           name: "学情分析",
           name: "学情分析",
           link: "/saindex"
           link: "/saindex"
         }, {
         }, {
           name: "课纲管理",
           name: "课纲管理",
-          link: "/sak"
+          link: "/syllabus"
         }]
         }]
       }
       }
     },
     },

+ 0 - 348
TEAMModelOS/ClientApp/view/syllabus/BaseContent.vue

@@ -1,348 +0,0 @@
-<template>
-    <div class="main">
-        <Row class="header">
-            <span :class='["menu-item",currentMenuIndex == 0 ? "menu-item-active" : ""]' @click="handleMenuClick(0)">
-                <Icon type="ios-cube" size="26" :color="currentMenuIndex == 0?'#2d8cf0':''"/><span>我的资源</span>
-            </span> 
-            <span :class='["menu-item",currentMenuIndex == 1 ? "menu-item-active" : ""]' @click="handleMenuClick(1)">
-                <Icon type="ios-cloud-done" size="26" :color="currentMenuIndex == 1?'#2d8cf0':''"/><span>共享资源</span>
-            </span>
-            <span :class='["menu-item",currentMenuIndex == 2 ? "menu-item-active" : ""]' @click="handleMenuClick(2)">
-               <Icon type="ios-bookmarks" size="26" :color="currentMenuIndex == 2?'#2d8cf0':''"/><span>集备资源</span>
-            </span>
-            <span :class='["menu-item",currentMenuIndex == 3 ? "menu-item-active" : ""]' @click="handleMenuClick(3)">
-               <Icon type="ios-ribbon" size="26" :color="currentMenuIndex == 3?'#2d8cf0':''"/><span>精品资源</span>
-            </span>
-            <span class="btn-upload">
-               <Button type="primary" size="large" @click="handleUpload">上传资源</Button>
-            </span>
-            <span class="menu-more">
-                <Poptip content="content" placement="bottom-end" theme="dark"> 
-                    <Icon type="md-menu" size="36" color="#2d8cf0"/>
-                    <div class="pop-content" slot="content" style="width:350px;padding-bottom:10px;">
-                        <Tabs value="filter" :animated="false">
-                            <TabPane label="资源筛选" name="filter">
-                                <p class="filter-title">按格式</p>
-                                <RadioGroup v-model="filterFileType" type="button">
-                                    <Radio label="全部" value="0"></Radio>
-                                    <Radio label="图片" value="1"></Radio>
-                                    <Radio label="文档" value="2"></Radio>
-                                    <Radio label="视频" value="3"></Radio>
-                                    <Radio label="音频" value="4"></Radio>
-                                    <Radio label="动画" value="5"></Radio>
-                                </RadioGroup>
-                                <p class="filter-title">按类别</p>
-                                <RadioGroup v-model="filterCategory" type="button">
-                                    <Radio label="全部" value="0"></Radio>
-                                    <Radio label="教案" value="1"></Radio>
-                                    <Radio label="学案" value="2"></Radio>
-                                    <Radio label="课件" value="3"></Radio>
-                                    <Radio label="微课" value="4"></Radio>
-                                    <Radio label="习题" value="5"></Radio>
-                                    <Radio label="素材" value="6"></Radio>
-                                    <Radio label="拓展" value="7"></Radio>
-                                </RadioGroup>
-                            </TabPane>
-                            <TabPane label="选择排序" name="orderBy">
-                                <RadioGroup v-model="filterCategory" type="button">
-                                    <Radio label="默认" value="0"></Radio>
-                                    <Radio label="评分" value="1"></Radio>
-                                    <Radio label="收藏" value="2"></Radio>
-                                </RadioGroup>
-                            </TabPane>
-                        </Tabs>
-                    </div>
-                </Poptip>
-            </span>
-        </Row>
-        <Row class="contentWarp">
-          <div class="content-item" v-for="item in fileList">
-            <div class="c-item-pic">
-              <img v-bind:src="item.img">
-            </div>
-            <p class="c-item-name" :title="item.name">{{item.name}}</p>
-            <p class="c-item-origin">来源:{{item.uploader}}</p>
-            <p class="c-item-download">下载次数:{{item.download}}</p>
-            <p class="c-item-rate">评分:<Rate allow-half disabled v-model="item.score" /> {{item.score}}</p>
-            <div class="btns">
-              <Button icon="ios-search">预览</Button>
-              <Button icon="ios-star">收藏</Button>
-              <Button icon="ios-cloud-download">下载</Button>
-              <Button icon="ios-search">举报</Button>
-            </div>
-            </div>
-            <Page :total="50" class="page" />
-            <Spin size="large" fix v-if="spinShow"></Spin>
-        </Row>
-        <!-- 上传文件弹出框 -->
-        <Modal v-model="uploadModal" class="upload-modal" scrollable title="上传资源" width="700px" ok-text="确认" cancel-text="取消" @on-ok="handleUploadConfirm">
-                <p class="upload-title">选择类型</p>
-                <RadioGroup v-model="uploadType" type="button">
-                    <Radio label="教案" value="0"></Radio>
-                    <Radio label="学案" value="1"></Radio>
-                    <Radio label="课件" value="2"></Radio>
-                    <Radio label="微课" value="3"></Radio>
-                </RadioGroup>
-                <p class="upload-title">选择资源</p>
-                <Upload
-                    multiple
-                    type="drag"
-                    action="//jsonplaceholder.typicode.com/posts/">
-                    <div style="padding: 60px 0">
-                        <Icon type="ios-cloud-upload" size="62" style="color: #3399ff"></Icon>
-                        <p>选择或者拖拽资源到此处上传</p>
-                    </div>
-                </Upload>
-        </Modal>
-    </div>
-</template>
-
-<script>
-    export default {
-    name: "BaseConent",
-    data(){
-        return{
-            currentMenuIndex:0,
-            fileList:[],
-            spinShow:false,
-            uploadModal:false,
-            uploadType:"教案",
-            filterFileType:"全部",
-            filterCategory:"全部",
-            data:[
-              {id:1,name:'文言文与阅读文言文与阅读PPT课件.ppt',img:require('@/assets/icon/ppt50.png'),uploader:"向常州",score:4,download:"15"},
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/ppt50.png'),uploader:"向常州",score:4.5,download:"15"},
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/word50.png'),uploader:"向常州",score:4.5,download:"15"},
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/xls50.png'),uploader:"向常州",score:4.5,download:"15"},
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/xls50.png'),uploader:"向常州",score:4.5,download:"15"},
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/zip50.png'),uploader:"向常州",score:4.5,download:"15"},
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/swf50.png'),uploader:"向常州",score:4.5,download:"15"},
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/video50.png'),uploader:"向常州",score:4.5,download:"15"},
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/word50.png'),uploader:"向常州",score:3,download:"15"},
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/word50.png'),uploader:"向常州",score:3,download:"15"},
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/word50.png'),uploader:"向常州",score:3,download:"15"},
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/word50.png'),uploader:"向常州",score:3,download:"15"},
-             
-            ],
-            data2:[
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/word50.png'),uploader:"向常州",score:3,download:"15"},
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/word50.png'),uploader:"向常州",score:3,download:"15"},
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/word50.png'),uploader:"向常州",score:3,download:"15"},
-            ]
-         }
-        },
-      created(){
-        this.spinShow = true;
-        setTimeout(() => {
-            this.fileList = this.data;
-            this.spinShow = false;
-        }, 500);
-      },
-      methods:{
-          handleMenuClick(index){
-              this.currentMenuIndex = index;
-              switch (index) {
-                  case 0:
-                      this.spinShow = true;
-                      setTimeout(() => {
-                          this.fileList = this.data;
-                          this.spinShow = false;
-                      }, 500);
-                      break;
-                  case 1:
-                      this.spinShow = true;
-                      setTimeout(() => {
-                          this.fileList = this.data2;
-                          this.spinShow = false;
-                      }, 500);
-                      break;
-                  case 2:
-                      this.spinShow = true;
-                      setTimeout(() => {
-                          this.fileList = this.data;
-                          this.spinShow = false;
-                      }, 500);
-                      break;
-                  case 3:
-                      this.spinShow = true;
-                      setTimeout(() => {
-                          this.fileList = this.data2;
-                          this.spinShow = false;
-                      }, 500);
-                      break;
-
-                  default:
-                      break;
-              }
-          },
-          handleUpload(){
-            this.uploadModal = true;
-          },
-          handleUploadConfirm(){
-
-          }
-      },
-    }
-</script>
-
-<style scoped>
-.main{
-    width: 100%;
-    display: flex;
-    flex-direction: column;
-    overflow-y: hidden;
-    font-family: "Helvetica Neue",Helvetica;
-}
-.header{
-    position: relative;
-    widows: 100%;
-    height: 100px;
-    border-bottom: 1px rgb(228, 227, 227) solid;
-    display: flex;
-    flex-direction: row;
-    align-items: center;
-    z-index: 99;
-    box-shadow: 0 0 5px 0 rgb(213, 218, 226);
-}
-.header .menu-item{
-    margin-left: 30px;
-    font-size: 16px;
-    font-weight: 500;
-    cursor: pointer;
-    color: rgb(134, 134, 134);
-}
-.menu-item-active{
-    color: #1B9DFF !important;
-}
-.menu-item span{
-    margin-left: 5px;
-}
-.menu-more{
-    position:absolute;
-    right: 32px;
-    top: 32px;
-    cursor: pointer;
-}
-.btn-upload{
-    position:absolute;
-    right: 100px;
-    top: 32px;
-    cursor: pointer;
-}
-.contentWarp{
-    width: 100%;
-    padding: 1%;
-    padding-bottom: 50px;
-    min-height: 768px;
-    display: flex;
-    flex-direction: row;
-    flex-wrap: wrap;
-    background: rgb(248, 248, 248);
-}
-.content-item{
-    width: 18%;
-    height: 340px;
-    margin: 1%;
-    font-size: 14px;
-    display: flex;
-    flex-direction:column;
-    align-items: center;
-    background: #fff;
-    border: 1px rgba(233, 232, 231, 0.644) solid;
-    box-shadow: 0 0 5px 0 rgb(213, 218, 226);
-    cursor: pointer;
-    border-radius: 5px;
-    min-width: 240px;
-    transition:transform .5s ease 0s;
-    transform-origin:center;
-}
-
-.c-item-pic{
-    width: 100%;
-    height: 120px;
-    padding-top: 30px;
-    display: flex;
-    justify-content: center;
-    align-content: center;
-}
-.c-item-pic img{
-    height: 60px;
-    width: 60px;
-}
-.c-item-name{
-    font-size: 16px;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    display: -webkit-box;
-    -webkit-line-clamp: 1;
-    -webkit-box-orient: vertical;
-    padding: 0 15px;
-}
-.c-item-origin{
-    margin: 10px 0;
-}
-.c-item-download{
-    /* font-weight: bold; */
-}
-.c-item-rate{
-    margin-top: 10px;
-}
-.content-item .ivu-dropdown{
-    margin-top: 10px;
-}
-.content-item .ivu-dropdown .ivu-btn{
-    width: 100%;
-    font-size: 14px;
-    padding: 5px 30px 6px;
-}
-.btns {
-    width:80%;
-    display:flex;
-    flex-direction:row;
-    flex-wrap:wrap;
-    justify-content:center;
-  }
-  .btns button {
-      margin:5px;
-  }
-.page{
-    margin: 0 auto;
-    width: 100%;
-    display: flex;
-    flex-direction: row;
-    justify-content: center;
-}
-.upload-title{
-    font-size: 14px;
-    font-weight: bold;
-    margin: 20px 5px;
-}
-
-.ivu-poptip-title-inner{
-    padding: 16px;
-    font-weight: bold;
-}
-.ivu-poptip-popper{
-    width: 400px;
-}
-.ivu-radio-group-button .ivu-radio-wrapper{
-    margin: 5px 10px;
-    border-radius: 0px !important;
-}
-.ivu-radio-group-button .ivu-radio-wrapper-checked{
-    background: #2b85e4 !important;
-    color: white !important;
-}
-.ivu-radio-group-button .ivu-radio-wrapper-checked .ivu-radio-focus{
-    box-shadow: 0 !important;
-}
-.ivu-radio-group-button{
-    display: flex;
-    flex-direction: row;
-    flex-wrap: wrap;
-}
-.filter-title{
-    font-size: 14px;
-    margin: 10px 0;
-}
-</style>

+ 0 - 101
TEAMModelOS/ClientApp/view/syllabus/BaseKnowPoint.vue

@@ -1,101 +0,0 @@
-<template>
-  <div class="point-main">
-    <Input suffix="ios-search" clearable placeholder="搜索知识点" style="width:250px !important;" />
-    <Button type="primary">添加知识点</Button>
-    <Button type="success">知识块管理</Button>
-    <Table :columns="columns1" :data="list"></Table>
-    <!--<ul>
-      <template v-for="(item,index) in list">
-        <li v-if="item.type == 'b'">{{ num++ }} {{item.type}}</li>
-      </template>
-    </ul>-->
-  </div>
-</template>
-<script>
-  export default {
-    data() {
-      return {
-        columns1: [
-          {
-            title: '编号',
-            key: 'id'
-          },
-          {
-            title: '名称',
-            key: 'name'
-          },
-          {
-            title: '创建时间',
-            key: 'date'
-          }
-        ],
-        num:1,
-        list: [
-          {
-            name: '拼写规则',
-            type:'a',
-            id: 1,
-            date: '2016-10-03 15:03:26'
-          },
-          {
-            name: '拼写规则',
-            type: 'a',
-            id: 1,
-            date: '2016-10-03 15:03:26'
-          },
-          {
-            name: '字词注音',
-            type: 'a',
-            id: 2,
-            date: '2016-10-03 15:03:26'
-          },
-          {
-            name: '汉字的辨析',
-            type: 'b',
-            id: 3,
-            date: '2016-10-03 15:03:26'
-          },
-          {
-            name: '看拼音写汉字',
-            type: 'b',
-            id: 4,
-            date: '2016-10-03 15:03:26'
-          },          {
-            name: '拼写规则',
-            type: 'b',
-            id: 1,
-            date: '2016-10-03 15:03:26'
-          }
-        ]
-      };
-    },
-
-    methods: {
-    },
-
-  };
-</script>
-<style scoped>
-  .ivu-table-wrapper {
-    border: 0;
-  }
-
-  .ivu-table {
-    margin-top: 30px;
-  }
-
-  .ivu-table::after, .ivu-table::before {
-    display: none;
-  }
-
-  .ivu-table, .ivu-table td, .ivu-table th {
-    background: rgba(255,255,255,0);
-    color: #fff;
-    border: 0;
-    cursor:pointer;
-  }
-
-  .ivu-table-row-hover td {
-    background-color: rgba(225, 224, 224, 0.18) !important;
-  }
-</style>

+ 0 - 386
TEAMModelOS/ClientApp/view/syllabus/BasePrepare.vue

@@ -1,386 +0,0 @@
-<template>
-    <div class="main">
-        <Row class="header">
-            <span :class='["menu-item",currentMenuIndex == 0 ? "menu-item-active" : ""]' @click="handleMenuClick(0)">
-                <Icon type="ios-cube" size="26" :color="currentMenuIndex == 0?'#2d8cf0':''"/><span>我的备课</span>
-            </span>
-            <span :class='["menu-item",currentMenuIndex == 1 ? "menu-item-active" : ""]' @click="handleMenuClick(1)">
-                <Icon type="ios-cloud-done" size="26" :color="currentMenuIndex == 1?'#2d8cf0':''"/><span>共享备课</span>
-            </span>
-            <span class="btn-upload">
-               <Button type="primary" size="large" @click="handleUpload">上传资源</Button>
-            </span>
-            <span class="menu-more">
-                <Poptip content="content" placement="bottom-end" theme="dark"> 
-                    <Icon type="md-menu" size="36" color="#2d8cf0"/>
-                    <div class="pop-content" slot="content" style="width:350px;padding-bottom:10px;">
-                        <Tabs value="filter" :animated="false">
-                            <TabPane label="资源筛选" name="filter">
-                                <p class="filter-title">按格式</p>
-                                <RadioGroup v-model="filterFileType" type="button">
-                                    <Radio label="全部" value="0"></Radio>
-                                    <Radio label="图片" value="1"></Radio>
-                                    <Radio label="文档" value="2"></Radio>
-                                    <Radio label="视频" value="3"></Radio>
-                                    <Radio label="音频" value="4"></Radio>
-                                    <Radio label="动画" value="5"></Radio>
-                                </RadioGroup>
-                                <p class="filter-title">按类别</p>
-                                <RadioGroup v-model="filterCategory" type="button">
-                                    <Radio label="全部" value="0"></Radio>
-                                    <Radio label="教案" value="1"></Radio>
-                                    <Radio label="学案" value="2"></Radio>
-                                    <Radio label="课件" value="3"></Radio>
-                                    <Radio label="微课" value="4"></Radio>
-                                    <Radio label="习题" value="5"></Radio>
-                                    <Radio label="素材" value="6"></Radio>
-                                    <Radio label="拓展" value="7"></Radio>
-                                </RadioGroup>
-                            </TabPane>
-                            <TabPane label="选择排序" name="orderBy">标签二的内容</TabPane>
-                            <TabPane label="相关说明" name="name3">标签三的内容</TabPane>
-                        </Tabs>
-                       
-                    </div>
-                </Poptip>
-            </span>
-
-        </Row>
-        <Row class="contentWarp">
-          <div class="content-item" v-for="item in fileList">
-
-
-            <div class="c-item-pic">
-              <Icon type="ios-play-outline" size="40" color="#fff" @click="handleVideoPlay(item.img)"/>
-              <img v-bind:src="item.img">
-            </div>
-            <p class="c-item-name" :title="item.name">{{item.name}}</p>
-            <p class="c-item-origin">来源:{{item.uploader}}</p>
-            <p class="c-item-download">下载次数:{{item.download}}</p>
-            <p class="c-item-rate">评分:<Rate allow-half disabled v-model="item.score" /> {{item.score}}</p>
-            <Dropdown trigger="click">
-              <Button type="primary">
-                预览
-                <Icon type="ios-arrow-down"></Icon>
-              </Button>
-              <DropdownMenu slot="list">
-                <DropdownItem>收藏</DropdownItem>
-                <DropdownItem>下载</DropdownItem>
-                <DropdownItem>举报</DropdownItem>
-              </DropdownMenu>
-            </Dropdown>
-          </div>
-            <Page :total="50" class="page" />
-            <Spin size="large" fix v-if="spinShow"></Spin>
-        </Row>
-        <!-- 上传文件弹出框 -->
-        <Modal v-model="uploadModal" class="upload-modal" scrollable title="上传资源" width="700px" ok-text="确认" cancel-text="取消" @on-ok="handleUploadConfirm">
-                <p class="upload-title">选择类型</p>
-                <RadioGroup v-model="uploadType" type="button">
-                    <Radio label="教案" value="0"></Radio>
-                    <Radio label="学案" value="1"></Radio>
-                    <Radio label="课件" value="2"></Radio>
-                    <Radio label="微课" value="3"></Radio>
-                </RadioGroup>
-                <p class="upload-title">选择资源</p>
-                <Upload
-                    multiple
-                    type="drag"
-                    action="//jsonplaceholder.typicode.com/posts/">
-                    <div style="padding: 60px 0">
-                        <Icon type="ios-cloud-upload" size="62" style="color: #3399ff"></Icon>
-                        <p>选择或者拖拽资源到此处上传</p>
-                    </div>
-                </Upload>
-        </Modal>
-
-      <!-- 上传文件弹出框 -->
-        <Modal v-model="videoFlag" footer-hide class="upload-modal" title="影片详情" scrollable  width="700px">
-          <video-player class="video-player vjs-custom-skin"
-                        ref="videoPlayer"
-                        :playsinline="true"
-                        :options="playerOptions">
-          </video-player>
-        </Modal>
-    </div>
-</template>
-
-<script>
-    export default {
-    name: "BaseConent",
-    data(){
-        return{
-            currentMenuIndex:0,
-            fileList:[],
-            spinShow:false,
-            uploadModal: false,
-            videoFlag:false,
-            uploadType:"教案",
-            filterFileType:"全部",
-            filterCategory:"全部",
-            data:[
-              { id: 1, name: '亚太地区智慧课堂', img: "http://sokrates.teammodel.org/storage/tba/24/thum.jpg", uploader: "向常州", score: 4, download: "15" },
-              { id: 1, name: 'AI智慧学校-海伦国际双语学校', img: "http://sokrates.teammodel.org/storage/tba/35/thum.jpg", uploader: "向常州", score: 4.5, download: "15" },
-              { id: 1, name: 'AI智慧学区-绍兴智慧学区', img: "http://sokrates.teammodel.org/storage/tba/2367/thum.jpg", uploader: "向常州", score: 4.5, download: "15" },
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: "http://sokrates.teammodel.org/storage/tba/24/thum.jpg", uploader: "向常州", score: 4.5, download: "15" },
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: "http://sokrates.teammodel.org/storage/tba/24/thum.jpg", uploader: "向常州", score: 4.5, download: "15" },
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: "http://sokrates.teammodel.org/storage/tba/24/thum.jpg", uploader: "向常州", score: 4.5, download: "15" },
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: "http://sokrates.teammodel.org/storage/tba/24/thum.jpg", uploader: "向常州", score: 4.5, download: "15" },
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: "http://sokrates.teammodel.org/storage/tba/24/thum.jpg", uploader: "向常州", score: 4.5, download: "15" },
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: "http://sokrates.teammodel.org/storage/tba/24/thum.jpg", uploader: "向常州", score: 4.5, download: "15" },
-
-            ],
-            data2:[
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/word50.png'),uploader:"向常州",score:3,download:"15"},
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/word50.png'),uploader:"向常州",score:3,download:"15"},
-              { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/word50.png'),uploader:"向常州",score:3,download:"15"},
-          ],
-          playerOptions: {
-            playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
-            autoplay: false, //如果true,浏览器准备好时开始回放。
-            muted: false, // 默认情况下将会消除任何音频。
-            loop: false, // 导致视频一结束就重新开始。
-            preload: 'auto', // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
-            language: 'zh-CN',
-            aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
-            fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
-            sources: [{
-              type: "",
-              src: "" //url地址
-            }],
-            poster: "http://sokrates.teammodel.org/storage/tba/24/thum.jpg", //你的封面地址
-            // width: document.documentElement.clientWidth,
-            notSupportedMessage: '此视频暂无法播放,请稍后再试', //允许覆盖Video.js无法播放媒体源时显示的默认信息。
-            controlBar: {
-              timeDivider: true,
-              durationDisplay: true,
-              remainingTimeDisplay: false,
-              fullscreenToggle: true  //全屏按钮
-            }
-          }
-
-         }
-        },
-      created(){
-        this.spinShow = true;
-        setTimeout(() => {
-            this.fileList = this.data;
-            this.spinShow = false;
-        }, 500);
-      },
-      methods:{
-          handleMenuClick(index){
-              this.currentMenuIndex = index;
-              switch (index) {
-                  case 0:
-                      this.spinShow = true;
-                      setTimeout(() => {
-                          this.fileList = this.data;
-                          this.spinShow = false;
-                      }, 500);
-                      break;
-                  case 1:
-                      this.spinShow = true;
-                      setTimeout(() => {
-                          this.fileList = this.data2;
-                          this.spinShow = false;
-                      }, 500);
-                      break;
-                  case 2:
-                      this.spinShow = true;
-                      setTimeout(() => {
-                          this.fileList = this.data;
-                          this.spinShow = false;
-                      }, 500);
-                      break;
-                  case 3:
-                      this.spinShow = true;
-                      setTimeout(() => {
-                          this.fileList = this.data2;
-                          this.spinShow = false;
-                      }, 500);
-                      break;
-
-                  default:
-                      break;
-              }
-          },
-          handleUpload(){
-              this.uploadModal = true;
-          },
-          handleUploadConfirm(){
-
-           },
-        handleVideoPlay(posterImg) {
-          this.videoFlag = true;
-          this.playerOptions.sources[0].src = "http://bpic.588ku.com/video_listen/588ku_preview/19/02/26/12/10/11/video5c74bc231c38b.mp4";
-          this.playerOptions.poster = posterImg;
-        }
-      },
-    }
-</script>
-
-<style scoped>
-.main{
-    width: 100%;
-    display: flex;
-    flex-direction: column;
-    overflow-y: hidden;
-    font-family: "Helvetica Neue",Helvetica;
-}
-.header{
-    position: relative;
-    widows: 100%;
-    height: 100px;
-    border-bottom: 1px rgb(228, 227, 227) solid;
-    display: flex;
-    flex-direction: row;
-    align-items: center;
-    z-index: 99;
-    box-shadow: 0 0 5px 0 rgb(213, 218, 226);
-}
-.header .menu-item{
-    margin-left: 30px;
-    font-size: 16px;
-    font-weight: 500;
-    cursor: pointer;
-    color: rgb(134, 134, 134);
-}
-.menu-item-active{
-    color: #1B9DFF !important;
-}
-.menu-item span{
-    margin-left: 5px;
-}
-.menu-more{
-    position:absolute;
-    right: 32px;
-    top: 32px;
-    cursor: pointer;
-}
-.btn-upload{
-    position:absolute;
-    right: 100px;
-    top: 32px;
-    cursor: pointer;
-}
-.contentWarp{
-    width: 100%;
-    padding: 1%;
-    padding-bottom: 50px;
-    min-height: 768px;
-    display: flex;
-    flex-direction: row;
-    flex-wrap: wrap;
-    background: rgb(248, 248, 248);
-}
-.content-item{
-    width: 18%;
-    margin: 1%;
-    padding: 0px 0 10px 0;
-    font-size: 14px;
-    display: flex;
-    flex-direction:column;
-    align-items: center;
-    background: #fff;
-    border: 1px rgba(233, 232, 231, 0.644) solid;
-    box-shadow: 0 0 5px 0 rgb(213, 218, 226);
-    cursor: pointer;
-    border-radius: 5px;
-    min-width: 240px;
-    transition:transform .5s ease 0s;
-    transform-origin:center;
-}
-
-  .c-item-pic {
-    position: relative;
-    width: 100%;
-    height: 160px;
-    padding-top: 10px;
-    padding-bottom: 10px;
-    display: flex;
-    justify-content: center;
-    align-content: center;
-  }
-
-    .c-item-pic img {
-      height: 100%;
-      width: 95%;
-      border-radius: 5px;
-    }
-
-    .c-item-pic .ivu-icon {
-      position: absolute;
-      top: 60px;
-      left: 42%;
-    }
-
-  .c-item-name {
-    font-size: 16px;
-    font-weight: bold;
-    color: #1B9DFF;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    display: -webkit-box;
-    -webkit-line-clamp: 1;
-    -webkit-box-orient: vertical;
-    padding: 0 15px;
-  }
-.c-item-origin{
-    margin: 10px 0;
-}
-.c-item-download{
-    /* font-weight: bold; */
-}
-.c-item-rate{
-    margin-top: 10px;
-}
-.content-item .ivu-dropdown{
-    margin-top: 10px;
-}
-.content-item .ivu-dropdown .ivu-btn{
-    width: 100%;
-    font-size: 14px;
-    padding: 5px 30px 6px;
-}
-.page{
-    margin: 0 auto;
-    width: 100%;
-    display: flex;
-    flex-direction: row;
-    justify-content: center;
-}
-.upload-title{
-    font-size: 14px;
-    font-weight: bold;
-    margin: 20px 5px;
-}
-
-.ivu-poptip-title-inner{
-    padding: 16px;
-    font-weight: bold;
-}
-.ivu-poptip-popper{
-    width: 400px;
-}
-.ivu-radio-group-button .ivu-radio-wrapper{
-    margin: 5px 10px;
-    border-radius: 0px !important;
-}
-.ivu-radio-group-button .ivu-radio-wrapper-checked{
-    background: #2b85e4 !important;
-    color: white !important;
-}
-.ivu-radio-group-button .ivu-radio-wrapper-checked .ivu-radio-focus{
-    box-shadow: 0 !important;
-}
-.ivu-radio-group-button{
-    display: flex;
-    flex-direction: row;
-    flex-wrap: wrap;
-}
-.filter-title{
-    font-size: 14px;
-    margin: 10px 0;
-}
-</style>

+ 0 - 412
TEAMModelOS/ClientApp/view/syllabus/BasePreview.vue

@@ -1,412 +0,0 @@
- <template>
-  <div class="main">
-    <Row class="header">
-      <span :class='["menu-item",currentMenuIndex == 0 ? "menu-item-active" : ""]' @click="handleMenuClick(0)">
-        <Icon type="ios-cube" size="26" :color="currentMenuIndex == 0?'#2d8cf0':''" /><span>我的导学</span>
-      </span>
-      <span :class='["menu-item",currentMenuIndex == 1 ? "menu-item-active" : ""]' @click="handleMenuClick(1)">
-        <Icon type="ios-cloud-done" size="26" :color="currentMenuIndex == 1?'#2d8cf0':''" /><span>共享导学</span>
-      </span>
-      <span class="btn-upload">
-        <Button type="primary" size="large" @click="handleUpload">上传资源</Button>
-      </span>
-      <span class="menu-more">
-        <Poptip content="content" placement="bottom-end" theme="dark">
-          <Icon type="md-menu" size="36" color="#2d8cf0" />
-          <div class="pop-content" slot="content" style="width:350px;padding-bottom:10px;">
-            <Tabs value="filter" :animated="false">
-              <TabPane label="资源筛选" name="filter">
-                <p class="filter-title">按格式</p>
-                <RadioGroup v-model="filterFileType" type="button">
-                  <Radio label="全部" value="0"></Radio>
-                  <Radio label="图片" value="1"></Radio>
-                  <Radio label="文档" value="2"></Radio>
-                  <Radio label="视频" value="3"></Radio>
-                  <Radio label="音频" value="4"></Radio>
-                  <Radio label="动画" value="5"></Radio>
-                </RadioGroup>
-                <p class="filter-title">按类别</p>
-                <RadioGroup v-model="filterCategory" type="button">
-                  <Radio label="全部" value="0"></Radio>
-                  <Radio label="教案" value="1"></Radio>
-                  <Radio label="学案" value="2"></Radio>
-                  <Radio label="课件" value="3"></Radio>
-                  <Radio label="微课" value="4"></Radio>
-                  <Radio label="习题" value="5"></Radio>
-                  <Radio label="素材" value="6"></Radio>
-                  <Radio label="拓展" value="7"></Radio>
-                </RadioGroup>
-              </TabPane>
-              <TabPane label="选择排序" name="orderBy">标签二的内容</TabPane>
-              <TabPane label="相关说明" name="name3">标签三的内容</TabPane>
-            </Tabs>
-
-          </div>
-        </Poptip>
-      </span>
-
-    </Row>
-    <Row class="contentWarp">
-      <div class="content-item" v-for="item in fileList">
-        <div class="c-item-pic">
-          <Icon type="ios-play-outline" size="40" color="#fff" @click="handleVideoPlay(item.img)" />
-          <img v-bind:src="item.img">
-        </div>
-        <div class="c-item-info">
-          <p class="c-item-name" :title="item.name">{{item.name}}</p>
-          <p class="c-item-origin">来源:{{item.uploader}}</p>
-          <p class="c-item-download">下载次数:{{item.download}}</p>
-          <p class="c-item-rate">评分:<Rate allow-half disabled v-model="item.score" /> {{item.score}}</p>
-          <Dropdown trigger="click">
-            <Button type="primary">
-              预览
-              <Icon type="ios-arrow-down"></Icon>
-            </Button>
-            <DropdownMenu slot="list">
-              <DropdownItem>收藏</DropdownItem>
-              <DropdownItem>下载</DropdownItem>
-              <DropdownItem>举报</DropdownItem>
-            </DropdownMenu>
-          </Dropdown>
-        </div>
-
-      </div>
-      <Page :total="50" class="page" />
-      <Spin size="large" fix v-if="spinShow"></Spin>
-    </Row>
-    <!-- 上传文件弹出框 -->
-    <Modal v-model="uploadModal" class="upload-modal" scrollable title="上传资源" width="700px" ok-text="确认" cancel-text="取消" @on-ok="handleUploadConfirm">
-      <p class="upload-title">选择类型</p>
-      <RadioGroup v-model="uploadType" type="button">
-        <Radio label="教案" value="0"></Radio>
-        <Radio label="学案" value="1"></Radio>
-        <Radio label="课件" value="2"></Radio>
-        <Radio label="微课" value="3"></Radio>
-      </RadioGroup>
-      <p class="upload-title">选择资源</p>
-      <Upload multiple
-              type="drag"
-              action="//jsonplaceholder.typicode.com/posts/">
-        <div style="padding: 60px 0">
-          <Icon type="ios-cloud-upload" size="62" style="color: #3399ff"></Icon>
-          <p>选择或者拖拽资源到此处上传</p>
-        </div>
-      </Upload>
-    </Modal>
-    <!-- 上传文件弹出框 -->
-    <Modal v-model="videoFlag" footer-hide class="upload-modal" title="影片详情" scrollable width="700px">
-      <video-player class="video-player vjs-custom-skin"
-                    ref="videoPlayer"
-                    :playsinline="true"
-                    :options="playerOptions">
-      </video-player>
-    </Modal>
-  </div>
-</template>
-
-<script>
-  export default {
-    name: "BaseConent",
-    data() {
-      return {
-        currentMenuIndex: 0,
-        fileList: [],
-        spinShow: false,
-        uploadModal: false,
-        videoFlag: false,
-        uploadType: "教案",
-        filterFileType: "全部",
-        filterCategory: "全部",
-        data: [
-          { id: 1, name: '亚太地区智慧课堂', img: "http://sokrates.teammodel.org/storage/tba/24/thum.jpg", uploader: "向常州", score: 4, download: "15" },
-          { id: 1, name: 'AI智慧学校-海伦国际双语学校', img: "http://sokrates.teammodel.org/storage/tba/35/thum.jpg", uploader: "向常州", score: 4.5, download: "15" },
-          { id: 1, name: 'AI智慧学区-绍兴智慧学区', img: "http://sokrates.teammodel.org/storage/tba/2367/thum.jpg", uploader: "向常州", score: 4.5, download: "15" },
-          { id: 1, name: '文言文与阅读PPT课件.ppt', img: "http://sokrates.teammodel.org/storage/tba/24/thum.jpg", uploader: "向常州", score: 4.5, download: "15" },
-          { id: 1, name: '文言文与阅读PPT课件.ppt', img: "http://sokrates.teammodel.org/storage/tba/24/thum.jpg", uploader: "向常州", score: 4.5, download: "15" },
-          { id: 1, name: '文言文与阅读PPT课件.ppt', img: "http://sokrates.teammodel.org/storage/tba/24/thum.jpg", uploader: "向常州", score: 4.5, download: "15" },
-          { id: 1, name: '文言文与阅读PPT课件.ppt', img: "http://sokrates.teammodel.org/storage/tba/24/thum.jpg", uploader: "向常州", score: 4.5, download: "15" },
-          { id: 1, name: '文言文与阅读PPT课件.ppt', img: "http://sokrates.teammodel.org/storage/tba/24/thum.jpg", uploader: "向常州", score: 4.5, download: "15" },
-          { id: 1, name: '文言文与阅读PPT课件.ppt', img: "http://sokrates.teammodel.org/storage/tba/24/thum.jpg", uploader: "向常州", score: 4.5, download: "15" },
-
-        ],
-        data2: [
-          { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/word50.png'), uploader: "向常州", score: 3, download: "15" },
-          { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/word50.png'), uploader: "向常州", score: 3, download: "15" },
-          { id: 1, name: '文言文与阅读PPT课件.ppt', img: require('@/assets/icon/word50.png'), uploader: "向常州", score: 3, download: "15" },
-        ],
-        playerOptions: {
-          playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
-          autoplay: false, //如果true,浏览器准备好时开始回放。
-          muted: false, // 默认情况下将会消除任何音频。
-          loop: false, // 导致视频一结束就重新开始。
-          preload: 'auto', // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
-          language: 'zh-CN',
-          aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
-          fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
-          sources: [{
-            type: "",
-            src: "" //url地址
-          }],
-          poster: "http://sokrates.teammodel.org/storage/tba/24/thum.jpg", //你的封面地址
-          // width: document.documentElement.clientWidth,
-          notSupportedMessage: '此视频暂无法播放,请稍后再试', //允许覆盖Video.js无法播放媒体源时显示的默认信息。
-          controlBar: {
-            timeDivider: true,
-            durationDisplay: true,
-            remainingTimeDisplay: false,
-            fullscreenToggle: true  //全屏按钮
-          }
-        }
-
-      }
-    },
-    created() {
-      this.spinShow = true;
-      setTimeout(() => {
-        this.fileList = this.data;
-        this.spinShow = false;
-      }, 500);
-    },
-    methods: {
-      handleMenuClick(index) {
-        this.currentMenuIndex = index;
-        switch (index) {
-          case 0:
-            this.spinShow = true;
-            setTimeout(() => {
-              this.fileList = this.data;
-              this.spinShow = false;
-            }, 500);
-            break;
-          case 1:
-            this.spinShow = true;
-            setTimeout(() => {
-              this.fileList = this.data2;
-              this.spinShow = false;
-            }, 500);
-            break;
-          case 2:
-            this.spinShow = true;
-            setTimeout(() => {
-              this.fileList = this.data;
-              this.spinShow = false;
-            }, 500);
-            break;
-          case 3:
-            this.spinShow = true;
-            setTimeout(() => {
-              this.fileList = this.data2;
-              this.spinShow = false;
-            }, 500);
-            break;
-
-          default:
-            break;
-        }
-      },
-      handleUpload() {
-        this.uploadModal = true;
-      },
-      handleUploadConfirm() {
-
-      },
-      handleVideoPlay(posterImg) {
-        this.videoFlag = true;
-        this.playerOptions.sources[0].src = "http://bpic.588ku.com/video_listen/588ku_preview/19/02/26/12/10/11/video5c74bc231c38b.mp4";
-        this.playerOptions.poster = posterImg;
-      }
-    },
-  }
-</script>
-
-<style scoped>
-  .main {
-    width: 100%;
-    display: flex;
-    flex-direction: column;
-    overflow-y: hidden;
-    font-family: "Helvetica Neue",Helvetica;
-  }
-
-  .header {
-    position: relative;
-    widows: 100%;
-    height: 100px;
-    border-bottom: 1px rgb(228, 227, 227) solid;
-    display: flex;
-    flex-direction: row;
-    align-items: center;
-    z-index: 99;
-    box-shadow: 0 0 5px 0 rgb(213, 218, 226);
-  }
-
-    .header .menu-item {
-      margin-left: 30px;
-      font-size: 16px;
-      font-weight: 500;
-      cursor: pointer;
-      color: rgb(134, 134, 134);
-    }
-
-  .menu-item-active {
-    color: #1B9DFF !important;
-  }
-
-  .menu-item span {
-    margin-left: 5px;
-  }
-
-  .menu-more {
-    position: absolute;
-    right: 32px;
-    top: 32px;
-    cursor: pointer;
-  }
-
-  .btn-upload {
-    position: absolute;
-    right: 100px;
-    top: 32px;
-    cursor: pointer;
-  }
-
-  .contentWarp {
-    width: 100%;
-    padding: 1%;
-    padding-bottom: 50px;
-    min-height: 768px;
-    display: flex;
-    flex-direction: row;
-    flex-wrap: wrap;
-    background: rgb(248, 248, 248);
-  }
-
-  .content-item {
-    width: 48%;
-    margin: 1%;
-    padding: 5px 0 5px 0;
-    font-size: 14px;
-    display: flex;
-    flex-direction: row;
-    align-items: center;
-    background: #fff;
-    border: 1px rgba(233, 232, 231, 0.644) solid;
-    box-shadow: 0 0 5px 0 rgb(213, 218, 226);
-    cursor: pointer;
-    border-radius: 5px;
-    min-width: 240px;
-    transition: transform .5s ease 0s;
-    transform-origin: center;
-  }
-
-  .c-item-pic {
-    position: relative;
-    width: 40%;
-    height: 180px;
-    /*padding-top: 10px;*/
-    /*padding-bottom: 10px;*/
-    display: flex;
-    justify-content: center;
-    align-content: center;
-  }
-
-    .c-item-pic img {
-      height: 100%;
-      width: 95%;
-      border-radius: 5px;
-    }
-
-    .c-item-pic .ivu-icon {
-      position: absolute;
-      top: 60px;
-      left: 42%;
-    }
-
-  .c-item-info {
-    display: flex;
-    flex-direction: column;
-    margin: 0 30px;
-  }
-
-  .c-item-name {
-    font-size: 20px;
-    font-weight: bold;
-    color: #1B9DFF;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    display: -webkit-box;
-    -webkit-line-clamp: 1;
-    -webkit-box-orient: vertical;
-  }
-
-  .c-item-origin {
-    margin: 10px 0;
-  }
-
-  .c-item-download {
-    /* font-weight: bold; */
-  }
-
-  .c-item-rate {
-    margin-top: 10px;
-  }
-
-  .content-item .ivu-dropdown {
-    margin-top: 10px;
-    width: 100px;
-  }
-
-    .content-item .ivu-dropdown .ivu-btn {
-      width: 100%;
-      font-size: 14px;
-      padding: 5px 30px 6px;
-    }
-
-  .page {
-    margin: 0 auto;
-    width: 100%;
-    display: flex;
-    flex-direction: row;
-    justify-content: center;
-  }
-
-  .upload-title {
-    font-size: 14px;
-    font-weight: bold;
-    margin: 20px 5px;
-  }
-
-  .ivu-poptip-title-inner {
-    padding: 16px;
-    font-weight: bold;
-  }
-
-  .ivu-poptip-popper {
-    width: 400px;
-  }
-
-  .ivu-radio-group-button .ivu-radio-wrapper {
-    margin: 5px 10px;
-    border-radius: 0px !important;
-  }
-
-  .ivu-radio-group-button .ivu-radio-wrapper-checked {
-    background: #2b85e4 !important;
-    color: white !important;
-  }
-
-    .ivu-radio-group-button .ivu-radio-wrapper-checked .ivu-radio-focus {
-      box-shadow: 0 !important;
-    }
-
-  .ivu-radio-group-button {
-    display: flex;
-    flex-direction: row;
-    flex-wrap: wrap;
-  }
-
-  .filter-title {
-    font-size: 14px;
-    margin: 10px 0;
-  }
-</style>

+ 0 - 144
TEAMModelOS/ClientApp/view/syllabus/Syllabus.vue

@@ -1,144 +0,0 @@
-<template>
-  <div class="index">
-    <!--<div class="header_box">
-      <SyHeader></SyHeader>
-    </div>-->
-    <img src="../../assets/logo.png" class="logo" />
-    <div class="menu-wrap">
-      <span :class='["title",activeIndex==0 ? "title-active" : ""]' @click="titleClick(0)">课纲管理</span>
-      <span :class='["title",activeIndex==1 ? "title-active" : ""]' @click="titleClick(1)">知识点管理</span>
-    </div>
-    <!--<div class="user-wrap">
-      <p>当前管理员:{{username}}</p>
-      <p>授权学校:{{schoolName}}</p>
-    </div>-->
-    <div class="ztree_box">
-      <router-view></router-view>
-    </div>
-  </div>
-</template>
-<script>
-  export default {
-    name: "app",
-    data() {
-      return {
-        schoolName: "",
-        username: "",
-        activeIndex: sessionStorage.getItem('kIndex') || 0
-      }
-    },
-    created() {
-      this.titleClick(this.activeIndex);
-    },
-    methods: {
-      titleClick(index) {
-        this.activeIndex = index;
-        sessionStorage.setItem('kIndex', index);
-        if (index == 0) {
-          this.$router.push('/SyIndex');
-        } else if (index == 1) {
-          this.$router.push('/BaseKnowPoint');
-        } else {
-          this.$router.push('/SyIndex');
-        }
-      }
-    },
-    mounted() {
-      this.schoolName = JSON.parse(localStorage.getItem('schoolInfo')).name;
-      this.username = localStorage.getItem('username');
-    }
-  }
-</script>
-<style scoped>
-  .index {
-    position: relative;
-    width: 100%;
-    min-width: 1366px;
-    padding-bottom: 150px;
-    background: linear-gradient(200deg, #7f7280, #000000);
-    /*background: url("http://chq.dygl.pujiaoyun.cn/static/img/banner.jpg") center 100% no-repeat;*/
-    -moz-user-select: none; /*火狐 firefox*/
-    -webkit-user-select: none; /*webkit浏览器*/
-    -ms-user-select: none; /*IE10+*/
-    user-select: none;
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-  }
-
-  .logo {
-    position: absolute;
-    top: 30px;
-    left: 60px;
-    height: 70px;
-  }
-
-  .menu-wrap {
-    margin: 60px 0 80px 0;
-  }
-
-  .user-wrap {
-    padding: 16px;
-    color: #fff;
-    font-size: 14px;
-    font-weight: 200;
-  }
-
-  .title {
-    font-size: 18px;
-    font-weight: 400;
-    color: rgba(255,255,255,.6);
-    padding: 10px 15px;
-    cursor: pointer;
-    margin-left: 20px;
-  }
-
-  .title-active {
-    font-size: 28px;
-    font-weight: 600;
-    color: #fff;
-  }
-
-  .header_box {
-    width: 100%;
-    height: 140px;
-  }
-
-  .ztree_box {
-    width: 61%;
-    /*max-height: 800px;*/
-    min-height: 800px;
-    padding: 40px;
-    padding-bottom: 150px;
-    color: rgba(225,225,225,.8);
-    background: #b7b7b71c;
-    border-radius: 4px;
-    overflow-y: scroll;
-  }
-
-  .select_box, .modification_box {
-    width: 81%;
-    float: left;
-    border-left: 1px rgb(228, 228, 228) solid;
-    min-height: 840px;
-  }
-
-  .ztree_box::-webkit-scrollbar { /*滚动条整体样式*/
-    width: 5px; /*高宽分别对应横竖滚动条的尺寸*/
-    height: 1px;
-  }
-
-  .ztree_box:hover .ztree_box::-webkit-scrollbar {
-    width: 5px;
-  }
-
-  .ztree_box::-webkit-scrollbar-thumb { /*滚动条里面小方块*/
-    border-radius: 10px;
-    -webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
-    background: #ffffff26;
-  }
-
-  .ztree_box::-webkit-scrollbar-track { /*滚动条里面轨道*/
-    background: #f4f4f400;
-  }
-</style>

+ 258 - 0
TEAMModelOS/ClientApp/view/syllabus/index/KnowPoint.css

@@ -0,0 +1,258 @@
+.know-main {
+    width: 100%;
+    height: 100%;
+    background: #fff;
+    padding: 20px 20px 20px 0;
+    box-sizing: border-box;
+}
+
+
+.content-wrap {
+    width: 100%;
+    height: 100%;
+    border: 2px solid #464646;
+}
+
+.header-wrap {
+    position: relative;
+    width: 100%;
+    height: 50px;
+    display: flex;
+    flex-direction: row;
+    justify-content: space-between;
+    border-bottom: 2px solid #464646;
+}
+
+    .header-wrap /deep/ .ivu-input {
+        height: 48px;
+        border: 0;
+        padding-left: 15px;
+        border-radius: 0 !important;
+        border-right: 2px solid #464646;
+        font-size: 14px;
+        font-weight: bold;
+        color: #464646;
+    }
+
+        .header-wrap /deep/ .ivu-input::-webkit-input-placeholder {
+            color: #464646;
+        }
+
+    .header-wrap /deep/ .ivu-input-suffix i {
+        line-height: 50px;
+    }
+
+.header-right {
+    height: 100%;
+    display: flex;
+    flex-direction: row;
+    justify-content: center;
+    align-items: center;
+}
+
+.header-right-item {
+    margin-right: 25px;
+    font-weight: 500;
+    font-size: 12px;
+    cursor: pointer;
+}
+
+.list-type .ivu-icon {
+    margin-left: 10px;
+    color: rgb(154,154,154);
+    cursor: pointer;
+}
+
+.list-type-active {
+    color: #fff !important;
+    background-color: rgb(154,154,154);
+    border-radius: 50%;
+    padding: 3px;
+}
+
+.sy-list-wrap {
+    width: 100%;
+    height: 100%;
+    display: flex;
+    flex-direction: column;
+    padding-bottom: 50px;
+}
+
+    .sy-list-wrap .knowpoints-filter {
+        width: 100%;
+        height: 50px;
+        border-bottom: 2px solid #464646;
+        margin-bottom: 10px;
+        display: flex;
+        flex-direction: row;
+        align-items: center;
+    }
+
+        .sy-list-wrap .knowpoints-filter span {
+            margin-left: 20px;
+            font-size: 14px;
+            color: rgb(78,78,78);
+            cursor: pointer;
+        }
+
+        .sy-list-wrap .knowpoints-filter .sort-active {
+            color: #000;
+            font-size: 18px;
+            font-weight: bold;
+        }
+
+.list-col {
+    overflow-y: auto;
+    height: 100%;
+}
+
+    .list-col /deep/ .ivu-input-wrapper {
+        width: 60%;
+    }
+
+.list-knowpoints {
+    /*padding-top:30px;*/
+}
+
+.sy-list-wrap /deep/ .ivu-collapse > .ivu-collapse-item > .ivu-collapse-header {
+    height: 100px;
+    line-height: 100px;
+}
+
+.collapse-header {
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+}
+
+.know-block-item {
+    width: 100%;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    padding-left: 15px;
+    border-bottom: 1px solid #464646;
+    cursor: pointer;
+}
+
+    .know-block-item:hover {
+        background: #fff;
+    }
+
+.know-block-name {
+    font-size: 18px;
+    font-weight: 600;
+}
+
+.know-block-builder {
+    margin-left: 15px;
+}
+
+.compose-block-tab /deep/ .ivu-input {
+    width: 90%;
+}
+
+.compose-block-tab /deep/ .ivu-tabs-bar {
+    display: flex;
+    flex-direction: row;
+    justify-content: center;
+}
+
+.compose-block-tab /deep/ .ivu-radio-group {
+    display: flex;
+    flex-direction: column;
+    padding-left: 15px;
+}
+
+.compose-block-tab /deep/ .ivu-radio {
+    margin: 10px;
+}
+
+.compose-block-tab /deep/ .ivu-tabs-tabpane {
+    padding-left: 10px;
+}
+
+.compose-block-tab .checked-points {
+    display: flex;
+    flex-direction: row;
+    flex-wrap: wrap;
+}
+
+    .compose-block-tab .checked-points .knowpoint-item {
+        padding: 5px 10px;
+    }
+
+.modal-title {
+    margin: 10px;
+}
+
+.list-col::-webkit-scrollbar { /*滚动条整体样式*/
+    width: 0px; /*高宽分别对应横竖滚动条的尺寸*/
+    height: 1px;
+}
+
+.list-col:hover .ztree_box::-webkit-scrollbar {
+    width: 5px;
+}
+
+.list-col::-webkit-scrollbar-thumb { /*滚动条里面小方块*/
+    border-radius: 10px;
+    -webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
+    background: rgba(255,255,38,1.000);
+}
+
+.list-col::-webkit-scrollbar-track { /*滚动条里面轨道*/
+    background-color: rgba(244,244,0,0.957);
+}
+
+.knowpoints {
+    width: 100%;
+    display: flex;
+    flex-direction: row;
+    flex-wrap: wrap;
+    padding: 0 10px;
+}
+
+.knowpoint-item {
+    position: relative;
+    display: flex;
+    padding: 10px 20px;
+    margin: 5px;
+    background: rgb(255,255,255);
+    color: #464646;
+    border: 1px solid rgb(216, 216, 216);
+    border-radius: 100px;
+    font-size: 12px;
+    cursor: pointer;
+}
+
+    .knowpoint-item:hover, .knowpoint-item-active {
+        background: rgb(45, 140, 240);
+        color: #fff !important;
+    }
+
+    .knowpoint-item .ivu-icon {
+        margin-left: 5px;
+    }
+
+.k-tools {
+    visibility: hidden;
+}
+
+.k-block-tools {
+    margin-left: 20px;
+    visibility: hidden;
+}
+
+    .k-block-tools .ivu-icon {
+        margin-left: 15px;
+        font-size: 16px;
+    }
+
+.overflow-text {
+    display: inline-block;
+    width: 60%;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}

+ 24 - 288
TEAMModelOS/ClientApp/common/KnowPoint.vue

@@ -1,11 +1,12 @@
+
 <template>
 <template>
   <div class="know-main center">
   <div class="know-main center">
     <div class="content-wrap">
     <div class="content-wrap">
       <div class="header-wrap">
       <div class="header-wrap">
         <Input placeholder="关键词搜索知识点" style="width:25% !important;" />
         <Input placeholder="关键词搜索知识点" style="width:25% !important;" />
         <div class="list-type center">
         <div class="list-type center">
-          <Icon type="md-menu" size="20" :class="listType==0?'list-type-active':''" @click="changeListType(0)"/>
-          <Icon type="ios-keypad" size="20" :class="listType==1?'list-type-active':''" @click="changeListType(1)"/>
+          <Icon type="md-menu" size="20" :class="listType==0?'list-type-active':''" @click="changeListType(0)" />
+          <Icon type="ios-keypad" size="20" :class="listType==1?'list-type-active':''" @click="changeListType(1)" />
         </div>
         </div>
         <div class="header-right">
         <div class="header-right">
           <div class="header-right-item" @click="addPoint" v-show="listType==1">
           <div class="header-right-item" @click="addPoint" v-show="listType==1">
@@ -26,7 +27,7 @@
           </div>
           </div>
         </div>
         </div>
       </div>
       </div>
-      <div class="list-wrap">
+      <div class="sy-list-wrap">
         <!-- 知识块 -->
         <!-- 知识块 -->
         <div class="list-col" v-if="isShowBlock">
         <div class="list-col" v-if="isShowBlock">
           <Collapse simple accordion @on-change="collapseChange">
           <Collapse simple accordion @on-change="collapseChange">
@@ -40,8 +41,8 @@
               <span class="know-block-builder">建立者 | {{item.builder}}</span>
               <span class="know-block-builder">建立者 | {{item.builder}}</span>
               <span class="k-block-tools">
               <span class="k-block-tools">
                 <Icon type="md-create" @click="handleEditBlock(item,$event)" title="编辑名称" />
                 <Icon type="md-create" @click="handleEditBlock(item,$event)" title="编辑名称" />
-                <Icon type="md-add-circle" title="编辑知识点" @click.stop.native="editBlockPoint(item)"/>
-                <Icon type="md-trash" @click="handleDeleteBlock" title="删除"/>
+                <Icon type="md-add-circle" title="编辑知识点" @click.stop.native="editBlockPoint(item)" />
+                <Icon type="md-trash" @click="handleDeleteBlock" title="删除" />
               </span>
               </span>
               <div slot="content" class="knowpoints">
               <div slot="content" class="knowpoints">
                 <div class="knowpoint-item" v-for="(item,index) in knowPointList" @mouseover="knowMouseover" @mouseout="knowMouseout">
                 <div class="knowpoint-item" v-for="(item,index) in knowPointList" @mouseover="knowMouseover" @mouseout="knowMouseout">
@@ -81,7 +82,7 @@
               </span>
               </span>
             </div>
             </div>
           </div>
           </div>
-          <Page :current="2" :total="50" simple class="center" style="margin:20px 0"/>
+          <Page :current="2" :total="50" simple class="center" style="margin:20px 0" />
         </div>
         </div>
 
 
         <Modal v-model="addBlockModal"
         <Modal v-model="addBlockModal"
@@ -115,21 +116,21 @@
                cancel-text="取消"
                cancel-text="取消"
                @on-ok="handleAddBlock"
                @on-ok="handleAddBlock"
                @on-cancel="">
                @on-cancel="">
-              <Transfer :data="data3"
-                        :target-keys="targetKeys3"
-                        :list-style="listStyle"
-                        :render-format="render3"
-                        :operations="['撤回知识库','加入知识块']"
-                        filter-placeholder="请输入搜索内容"
-                        :titles="['知识点仓库', '当前知识块']"
-                        not-found-text="列表为空"
-                        filterable
-                        :filter-method="filterMethod"
-                        @on-change="handleChange3">
-                <div :style="{float: 'right', margin: '5px'}">
-                  <Button size="small" @click="reloadMockData">刷新</Button>
-                </div>
-              </Transfer>
+          <Transfer :data="data3"
+                    :target-keys="targetKeys3"
+                    :list-style="listStyle"
+                    :render-format="render3"
+                    :operations="['撤回知识库','加入知识块']"
+                    filter-placeholder="请输入搜索内容"
+                    :titles="['知识点仓库', '当前知识块']"
+                    not-found-text="列表为空"
+                    filterable
+                    :filter-method="filterMethod"
+                    @on-change="handleChange3">
+            <div :style="{float: 'right', margin: '5px'}">
+              <Button size="small" @click="reloadMockData">刷新</Button>
+            </div>
+          </Transfer>
         </Modal>
         </Modal>
         <!-- 组成知识块弹窗 -->
         <!-- 组成知识块弹窗 -->
         <Modal v-model="composeBlockModal"
         <Modal v-model="composeBlockModal"
@@ -215,7 +216,7 @@
 
 
       //知识点与知识块切换
       //知识点与知识块切换
       changeListType(status) {
       changeListType(status) {
-        this.listType = status; 
+        this.listType = status;
         this.isShowBlock = status == 0;
         this.isShowBlock = status == 0;
       },
       },
       //数字格式转换
       //数字格式转换
@@ -337,7 +338,7 @@
       //request编辑知识块
       //request编辑知识块
       handleEditBlockPoint() {
       handleEditBlockPoint() {
         console.log(this.targetKeys3);
         console.log(this.targetKeys3);
-        
+
       },
       },
 
 
       //request编辑知识块
       //request编辑知识块
@@ -396,268 +397,3 @@
     }
     }
   }
   }
 </script>
 </script>
-
-<style scoped>
-  .know-main {
-    width: 100%;
-    height: 100%;
-    background: #fff;
-    padding: 20px 20px 20px 0;
-    box-sizing: border-box;
-  }
-
-  .center {
-    display: flex;
-    flex-direction: row;
-    justify-content: center;
-    align-items: center;
-  }
-
-  .centerCol {
-    display: flex;
-    flex-direction: column;
-    justify-content: center;
-    align-items: center;
-  }
-
-  .content-wrap {
-    width: 100%;
-    height: 100%;
-    border: 2px solid #464646;
-  }
-
-  .header-wrap {
-    position: relative;
-    width: 100%;
-    height: 50px;
-    display: flex;
-    flex-direction: row;
-    justify-content: space-between;
-    border-bottom: 2px solid #464646;
-  }
-
-  .header-wrap /deep/ .ivu-input {
-    height: 48px;
-    border: 0;
-    padding-left: 15px;
-    border-radius: 0 !important;
-    border-right: 2px solid #464646;
-    font-size: 14px;
-    font-weight: bold;
-    color: #464646;
-  }
-
-  .header-wrap /deep/ .ivu-input::-webkit-input-placeholder {
-    color: #464646;
-  }
-
-  .header-wrap /deep/ .ivu-input-suffix i {
-    line-height: 50px;
-  }
-
-  .header-right {
-    height: 100%;
-    display: flex;
-    flex-direction: row;
-    justify-content: center;
-    align-items: center;
-  }
-
-  .header-right-item {
-    margin-right: 25px;
-    font-weight: 500;
-    font-size: 12px;
-    cursor: pointer;
-  }
-
-  .list-type .ivu-icon {
-    margin-left: 10px;
-    color: rgb(154,154,154);
-    cursor:pointer;
-  }
-
-  .list-type-active {
-    color: #fff !important;
-    background-color: rgb(154,154,154);
-    border-radius: 50%;
-    padding: 3px;
-  }
-
-  .list-wrap {
-    width: 100%;
-    height: 100%;
-    display: flex;
-    flex-direction: column;
-    padding-bottom: 50px;
-  }
-
-  .list-wrap .knowpoints-filter{
-    width:100%;
-    height:50px;
-    border-bottom:2px solid #464646;
-    margin-bottom:10px;
-    display:flex;
-    flex-direction:row;
-    align-items:center;
-  }
-
-  .list-wrap .knowpoints-filter span{
-    margin-left:20px;
-    font-size:14px;
-    color:rgb(78,78,78);
-    cursor:pointer;
-  }
-
-  .list-wrap .knowpoints-filter .sort-active{
-    color:#000;
-    font-size:18px;
-    font-weight:bold;
-  }
-
-  .list-col {
-    overflow-y: auto;
-    height: 100%;
-  }
-
-  .list-col /deep/ .ivu-input-wrapper {
-    width: 60%;
-  }
-
-  .list-knowpoints {
-    /*padding-top:30px;*/
-  }
-
-  .list-wrap /deep/ .ivu-collapse > .ivu-collapse-item > .ivu-collapse-header {
-    height: 100px;
-    line-height: 100px;
-  }
-
-  .collapse-header {
-    display:flex;
-    flex-direction:column;
-    justify-content:center;
-  }
-
-  .know-block-item {
-    width: 100%;
-    display: flex;
-    flex-direction: column;
-    justify-content: center;
-    padding-left: 15px;
-    border-bottom: 1px solid #464646;
-    cursor: pointer;
-  }
-
-  .know-block-item:hover {
-    background: #fff;
-  }
-
-  .know-block-name {
-    font-size: 18px;
-    font-weight: 600;
-  }
-
-  .know-block-builder {
-    margin-left:15px;
-  }
-
-  .compose-block-tab /deep/ .ivu-input {
-    width:90%;
-  }
-
-  .compose-block-tab /deep/ .ivu-tabs-bar {
-    display:flex;
-    flex-direction:row;
-    justify-content:center;
-  }
-  .compose-block-tab /deep/ .ivu-radio-group {
-    display: flex;
-    flex-direction: column;
-    padding-left:15px;
-  }
-  .compose-block-tab /deep/ .ivu-radio {
-    margin:10px;
-  }
-
-  .compose-block-tab /deep/ .ivu-tabs-tabpane {
-    padding-left:10px;
-  }
-
-  .compose-block-tab .checked-points {
-    display:flex;
-    flex-direction:row;
-    flex-wrap:wrap;
-  }
-  .compose-block-tab .checked-points .knowpoint-item{
-    padding:5px 10px;
-  }
-  
-  .modal-title {
-    margin: 10px;
-  }
-
-  .list-col::-webkit-scrollbar { /*滚动条整体样式*/
-    width: 0px; /*高宽分别对应横竖滚动条的尺寸*/
-    height: 1px;
-  }
-
-  .list-col:hover .ztree_box::-webkit-scrollbar {
-    width: 5px;
-  }
-
-  .list-col::-webkit-scrollbar-thumb { /*滚动条里面小方块*/
-    border-radius: 10px;
-    -webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
-    background: rgba(255,255,38,1.000);
-  }
-
-  .list-col::-webkit-scrollbar-track { /*滚动条里面轨道*/
-    background-color: rgba(244,244,0,0.957);
-  }
-
-  .knowpoints {
-    width:100%;
-    display:flex;
-    flex-direction:row;
-    flex-wrap:wrap;
-    padding: 0 10px;
-  }
-  .knowpoint-item {
-    position: relative;
-    display:flex;
-    padding: 10px 20px;
-    margin: 5px;
-    background: rgb(255,255,255);
-    color: #464646;
-    border:1px solid rgb(216, 216, 216);
-    border-radius: 100px;
-    font-size: 12px;
-    cursor: pointer;
-  }
-  .knowpoint-item:hover, .knowpoint-item-active {
-    background: rgb(45, 140, 240);
-    color: #fff !important;
-  }
-  .knowpoint-item .ivu-icon {
-    margin-left: 5px;
-  }
-  .k-tools {
-    visibility:hidden;
-  }
-  .k-block-tools {
-    margin-left: 20px;
-    visibility: hidden;
-  }
-  .k-block-tools .ivu-icon {
-    margin-left: 15px;
-    font-size: 16px;
-  }
-
-  .overflow-text {
-    display:inline-block;
-    width:60%;
-    overflow:hidden;
-    white-space:nowrap;
-    text-overflow:ellipsis;
-  }
-</style>

+ 289 - 0
TEAMModelOS/ClientApp/view/syllabus/index/Syllabus.css

@@ -0,0 +1,289 @@
+.syllabus-main {
+    width: 100%;
+    height: 100%;
+    background: #fff;
+    padding: 20px;
+    box-sizing: border-box;
+}
+
+.content-wrap {
+    width: 100%;
+    height: 100%;
+    border: 2px solid #464646;
+}
+
+.header-wrap {
+    position: relative;
+    width: 100%;
+    height: 50px;
+    display: flex;
+    flex-direction: row;
+    justify-content: space-between;
+    border-bottom: 2px solid #464646;
+}
+
+    .header-wrap /deep/ .ivu-input {
+        height: 48px;
+        border: 0;
+        padding-left: 15px;
+        border-radius: 0 !important;
+        border-right: 2px solid #464646;
+        font-size: 14px;
+        font-weight: bold;
+        color: #464646;
+    }
+
+        .header-wrap /deep/ .ivu-input::-webkit-input-placeholder {
+            color: #464646;
+        }
+
+    .header-wrap /deep/ .ivu-input-suffix i {
+        line-height: 50px;
+    }
+
+.header-right {
+    height: 100%;
+    display: flex;
+    flex-direction: row;
+    justify-content: center;
+    align-items: center;
+}
+
+.header-right-item {
+    margin-right: 25px;
+    font-weight: 500;
+    font-size: 12px;
+    cursor: pointer;
+}
+
+.subject-modal /deep/ .ivu-checkbox {
+    margin: 10px;
+}
+
+.subject-modal /deep/ .ivu-select {
+    margin: 0 10px;
+}
+
+.subject-modal /deep/ .ivu-input {
+    margin: 0 10px;
+}
+
+.list-wrap {
+    width: 100%;
+    height: 100%;
+    display: flex;
+    flex-direction: row;
+    padding-bottom: 50px;
+}
+
+.list-col {
+    position: relative;
+    height: 100%;
+    overflow-y: auto;
+}
+
+    .list-col /deep/ .ivu-input-wrapper {
+        width: 60%;
+    }
+
+.term-userNum /deep/ .ivu-input-wrapper {
+    width: 100%;
+}
+
+.pop-content .ivu-checkbox-group {
+    display: flex;
+    flex-direction: column;
+    margin-top: 20px;
+}
+
+.pop-content .ivu-checkbox-group-item {
+    margin: 5px 10px;
+}
+
+.pop-content /deep/ .ivu-checkbox {
+    margin-right: 10px;
+}
+
+.pop-content .ivu-tabs-tabpane {
+    max-height: 300px;
+    overflow: auto;
+}
+
+.list-left {
+    width: 20%;
+    background-color: rgb(204,204,204);
+    margin-right: 0px;
+}
+
+.list-middle {
+    width: 35%;
+    background-color: rgb(230,230,230);
+    border-left: 2px solid #464646;
+    border-right: 1px solid #464646;
+}
+
+.list-right {
+    width: 45%;
+    background-color: rgb(242,242,242);
+}
+
+.subject-item {
+    width: 100%;
+    height: 80px;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    padding-left: 15px;
+    border-bottom: 1px solid #464646;
+    cursor: pointer;
+}
+
+    .subject-item:hover {
+        background: #fff;
+    }
+
+.subject-name {
+    font-size: 18px;
+    font-weight: 600;
+}
+
+.term-item {
+    height: auto;
+    padding: 10px;
+}
+
+.term-item-active {
+    background: #fff;
+}
+
+.term-period {
+    margin: 5px 0;
+    font-size: 14px;
+}
+
+.term-name-title {
+    font-size: 18px;
+    font-weight: 600;
+}
+
+.term-add-user {
+    text-decoration: underline;
+    cursor: pointer;
+}
+
+.term-users {
+    width: 100%;
+    background: #fff;
+    display: flex;
+    flex-direction: row;
+    flex-wrap: wrap;
+    margin-top: 10px;
+}
+
+.term-user-item {
+    padding: 5px;
+    margin: 5px;
+}
+
+.term-user-img {
+    width: 20px;
+    height: 20px;
+    border-radius: 50%;
+}
+
+.term-user-name {
+    margin-left: 5px;
+    color: rgb(139, 139, 139);
+}
+
+.centerCol {
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+}
+
+.center {
+    display: flex;
+    flex-direction: row;
+    justify-content: center;
+    align-items: center;
+}
+
+.list-col::-webkit-scrollbar { /*滚动条整体样式*/
+    width: 0px; /*高宽分别对应横竖滚动条的尺寸*/
+    height: 1px;
+}
+
+.list-col:hover .ztree_box::-webkit-scrollbar {
+    width: 5px;
+}
+
+.list-col::-webkit-scrollbar-thumb { /*滚动条里面小方块*/
+    border-radius: 10px;
+    -webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
+    background: #ffffff26;
+}
+
+.list-col::-webkit-scrollbar-track { /*滚动条里面轨道*/
+    background: #f4f4f400;
+}
+
+.s-block-tools {
+    margin-left: 10px;
+}
+
+    .s-block-tools .ivu-icon {
+        margin-left: 5px;
+        margin-bottom: 2px;
+        font-size: 16px;
+        color: rgb(185, 185, 185);
+    }
+
+.modal-title {
+    margin: 10px 5px;
+}
+
+.animated {
+    animation-duration: 0.2s;
+}
+
+@-webkit-keyframes slideInDown {
+    from {
+        -webkit-transform: translate3d(0,-40%, 0);
+        transform: translate3d(0, -40%, 0) !important;
+        visibility: visible;
+    }
+
+    to {
+        -webkit-transform: translate3d(0, 0%, 0);
+        transform: translate3d(0, 0%, 0);
+    }
+}
+
+@keyframes slideInDown {
+    from {
+        -webkit-transform: translate3d(0, -20%, 0);
+        transform: translate3d(0, -20%, 0) !important;
+        visibility: visible;
+    }
+
+    to {
+        -webkit-transform: translate3d(0, 0%, 0);
+        transform: translate3d(0, 0%, 0);
+    }
+}
+
+.slideInDown {
+    -webkit-animation-name: slideInDown;
+    animation-name: slideInDown;
+}
+
+.d-none {
+    display: none;
+}
+
+.no-data-text {
+    margin: 20px;
+    font-size: 16px;
+}

+ 183 - 353
TEAMModelOS/ClientApp/common/Syllabus.vue

@@ -1,3 +1,4 @@
+
 <template>
 <template>
   <div class="syllabus-main center">
   <div class="syllabus-main center">
     <div class="content-wrap">
     <div class="content-wrap">
@@ -21,74 +22,84 @@
       <div class="list-wrap">
       <div class="list-wrap">
         <!-- 左边科目列表 -->
         <!-- 左边科目列表 -->
         <div class="list-col list-left">
         <div class="list-col list-left">
-          <div v-for="item in currentSubjectList" :class='["subject-item", item.rowKey==s_click_id ? "term-item-active" : ""]' @click="subjectClick(item)">
-            <span class="subject-name">
-              <Input v-if="item.rowKey==c_edit_id" clearable type="text" v-model="item.name"
-                     @on-blur="editSubject(item)"
-                     @on-enter="editSubject(item)"
-                     @click.stop.native="inputFocus($event)" />
-              <span v-else>{{item.name}}</span>
-
-              <span class="s-block-tools" v-show="item.rowKey==c_subject_id">
-                <Icon type="md-create" @click="handleEditSubject(item,$event)" />
-                <Icon type="md-trash" @click="handleDeleteSubject" />
+          <Spin fix v-show="subjectLoading"></Spin>
+          <template v-if="currentSubjectList.length > 0">
+            <div v-for="item in currentSubjectList" :class='["subject-item", item.rowKey==s_click_id ? "term-item-active" : ""]' @click="subjectClick(item)">
+              <span class="subject-name">
+                <Input v-if="item.rowKey==c_edit_id" clearable type="text" v-model="item.name"
+                       @on-blur="editSubject(item)"
+                       @keyup.enter.native="$event.target.blur"
+                       @click.stop.native="inputFocus($event)" />
+                <span v-else>{{item.name}}</span>
+
+                <span class="s-block-tools" v-show="item.rowKey==c_subject_id">
+                  <Icon type="md-create" @click="handleEditSubject(item,$event)" />
+                  <Icon type="md-trash" @click="handleDeleteSubject(item)" />
+                </span>
               </span>
               </span>
-            </span>
-            <span class="subject-term-num">册数 | {{item.termNum?item.termNum:0}}</span>
-          </div>
+              <span class="subject-term-num">册数 | {{item.termNum?item.termNum:0}}</span>
+            </div>
+          </template>
+          <div v-else class="no-data-text">暂无数据</div>
         </div>
         </div>
         <!-- 中间册别列表 -->
         <!-- 中间册别列表 -->
         <div class="list-col list-middle">
         <div class="list-col list-middle">
-          <div v-for="item in volumesList" :class='["subject-item", "term-item", item.rowKey==c_click_id ? "term-item-active" : ""]' @click="volumesClick(item)">
-            <span class="subject-name term-name">
-              <Input v-if="item.rowKey==t_edit_id" clearable type="text" v-model="item.name"
-                     @on-blur="editTerm(item)"
-                     @on-enter="editTerm(item)"
-                     @click.stop.native="inputFocus($event)" />
-              <span v-else class="term-name-title">{{item.name}} | {{item.termCode}}</span>
-              <span class="s-block-tools" v-show="item.rowKey==c_term_id">
-                <Icon type="md-create" @click="handleEditTerm(item,$event)" />
-                <Icon type="md-trash" @click="handleDeleteSubject" />
+          <Spin fix v-show="volumesLoading"></Spin>
+          <template v-if="volumesList.length > 0">
+            <div v-for="item in volumesList" :class='["subject-item", "term-item", item.rowKey==c_click_id ? "term-item-active" : ""]' @click="volumesClick(item)">
+              <span class="subject-name term-name">
+                <Input v-if="item.rowKey==t_edit_id" clearable type="text" v-model="item.name"
+                       @on-blur="editTerm(item)"
+                       @keyup.enter.native="$event.target.blur"
+                       @click.stop.native="inputFocus($event)" />
+                <span v-else class="term-name-title">{{item.name}} | {{item.termCode}}</span>
+                <span class="s-block-tools" v-show="item.rowKey==c_term_id">
+                  <Icon type="md-create" @click="handleEditTerm(item,$event)" />
+                  <Icon type="md-trash" @click="handleDeleteVolumes(item)" />
+                </span>
               </span>
               </span>
-            </span>
-            <span class="term-period">{{item.periodName}} | {{item.gradeName + item.termName}}  <Icon type="md-arrow-dropdown" v-show="item.rowKey==c_click_id" size="18" style="margin-bottom:3px" /></span>
-            <div class="term-userNum">
-              <span>共编使用者数 | {{item.termCode}} 名</span>
-              <Poptip content="content" placement="bottom-end" theme="dark">
-                <span class="term-add-user" v-show="item.id==c_click_id">添加共编使用者</span>
-                <div class="pop-content" slot="content" style="padding-bottom:10px;">
-                  <Tabs value="filter" :animated="false">
-                    <TabPane label="选择老师" name="filter">
-                      <template>
-                        <Select v-model="selectGrade" style="width:100%" @on-change="handleGradeChange">
-                          <Option v-for="item in gradeList" :value="item.name" :key="item.name">{{ item.name }}</Option>
-                        </Select>
-                      </template>
-                      <CheckboxGroup v-model="tearchList" @on-change="handleTeacherCheck">
-                        <Checkbox  v-for="(item,index) in userList" :key="index" :label="item.index">{{item.name}}{{item.role}}</Checkbox>
-                      </CheckboxGroup>
-                    </TabPane>
-                    <TabPane label="选择群组" name="orderBy">
-
-                    </TabPane>
-                  </Tabs>
+              <span class="term-period">{{item.periodName}} | {{item.gradeName + item.termName}}  <Icon type="md-arrow-dropdown" v-show="item.rowKey==c_click_id" size="18" style="margin-bottom:3px" /></span>
+              <div class="term-userNum">
+                <span>共编使用者数 | {{item.termCode}} 名</span>
+                <Poptip content="content" placement="bottom-end" theme="dark">
+                  <span class="term-add-user" v-show="item.id==c_click_id">添加共编使用者</span>
+                  <div class="pop-content" slot="content" style="padding-bottom:10px;">
+                    <Tabs value="filter" :animated="false">
+                      <TabPane label="选择老师" name="filter">
+                        <template>
+                          <Select v-model="selectGrade" style="width:100%" @on-change="handleGradeChange">
+                            <Option v-for="item in gradeList" :value="item.name" :key="item.name">{{ item.name }}</Option>
+                          </Select>
+                        </template>
+                        <CheckboxGroup v-model="tearchList" @on-change="handleTeacherCheck">
+                          <Checkbox v-for="(item,index) in userList" :key="index" :label="item.index">{{item.name}}{{item.role}}</Checkbox>
+                        </CheckboxGroup>
+                      </TabPane>
+                      <TabPane label="选择群组" name="orderBy">
+
+                      </TabPane>
+                    </Tabs>
+                  </div>
+                </Poptip>
+              </div>
+              <!-- 使用者列表 -->
+              <transition enter-active-class="animated slideInDown" leave-active-class="d-none">
+                <div class="term-users" v-show="item.id==c_click_id">
+                  <div class="term-user-item center" v-for="user in userList">
+                    <img class="term-user-img" :src="user.headImg" />
+                    <span class="term-user-name">{{user.name}} {{user.role}}</span>
+                  </div>
                 </div>
                 </div>
-              </Poptip>
+              </transition>
             </div>
             </div>
-            <!-- 使用者列表 -->
-            <transition enter-active-class="animated slideInDown" leave-active-class="d-none">
-              <div class="term-users" v-show="item.id==c_click_id">
-                <div class="term-user-item center" v-for="user in userList">
-                  <img class="term-user-img" :src="user.headImg" />
-                  <span class="term-user-name">{{user.name}} {{user.role}}</span>
-                </div>
-              </div>
-            </transition>
-          </div>
+          </template>
+          <div v-else class="no-data-text">暂无数据</div>
         </div>
         </div>
         <!-- 右侧树形列表 -->
         <!-- 右侧树形列表 -->
         <div class="list-col list-right">
         <div class="list-col list-right">
-          <Tree></Tree>
+          <Spin fix v-show="syllabusLoading"></Spin>
+          <Tree :treeDatas="treeDatas" :volumeCode="volumeCode" v-if="volumesList.length > 0 && treeDatas.length > 0"></Tree>
+          <div v-else class="no-data-text">暂无数据</div>
         </div>
         </div>
       </div>
       </div>
 
 
@@ -100,6 +111,11 @@
              cancel-text="取消"
              cancel-text="取消"
              @on-ok="handleAddSubject"
              @on-ok="handleAddSubject"
              @on-cancel="">
              @on-cancel="">
+        <p class="modal-title" v-show="currentSubjectList.length > 0">当前已选科目</p>
+        <CheckboxGroup v-model="currentSubjectList" v-show="currentSubjectList.length > 0">
+          <Checkbox v-for="(item,index) in currentSubjectList" :label="index" :key="index" disabled>{{item.name}}</Checkbox>
+        </CheckboxGroup>
+
         <p class="modal-title">请选择需要添加的新科目</p>
         <p class="modal-title">请选择需要添加的新科目</p>
         <CheckboxGroup v-model="newSubjectList">
         <CheckboxGroup v-model="newSubjectList">
           <Checkbox v-for="(item,index) in subjectList" :label="index" :key="index">{{item.name}}</Checkbox>
           <Checkbox v-for="(item,index) in subjectList" :label="index" :key="index">{{item.name}}</Checkbox>
@@ -135,7 +151,7 @@
 </template>
 </template>
 
 
 <script>
 <script>
-  import Tree from './Tree.vue'
+  import Tree from '@/components/syllabus/Tree.vue'
 import { all } from 'q';
 import { all } from 'q';
 import { setTimeout } from 'core-js';
 import { setTimeout } from 'core-js';
   export default {
   export default {
@@ -153,6 +169,11 @@ import { setTimeout } from 'core-js';
         volumesList: [],//册别列表
         volumesList: [],//册别列表
         treeData: [],//课纲数据
         treeData: [],//课纲数据
         userList: [],//共编使用者列表
         userList: [],//共编使用者列表
+        treeDatas: [],
+        volumeCode: "",
+        subjectLoading: true,
+        volumesLoading: true,
+        syllabusLoading:true,
 
 
         findPeriodsList:[],
         findPeriodsList:[],
         findGradesList:[],
         findGradesList:[],
@@ -180,28 +201,41 @@ import { setTimeout } from 'core-js';
       }
       }
     },
     },
     created() {
     created() {
-      this.schoolInfo = JSON.parse(localStorage.getItem('c_role_info')).roleClaim[1]; //默认选中第一个学校
+      this.schoolInfo = JSON.parse(localStorage.getItem('c_role_info')).roleClaim[0]; //默认选中第一个学校
       let schoolClaims = this.schoolInfo.claim;
       let schoolClaims = this.schoolInfo.claim;
       for (let i in schoolClaims) {
       for (let i in schoolClaims) {
         if (schoolClaims[i].claimType == "SchoolCode") {
         if (schoolClaims[i].claimType == "SchoolCode") {
           this.schoolInfo = schoolClaims[i]
           this.schoolInfo = schoolClaims[i]
         }
         }
       }
       }
-      //查找全部科目
-      this.$api.FindSubjectsByDict({}).then(res => {
-        this.subjectList = res.result.data;
-      })
 
 
-      //查找当前学校已有科目
-      this.$api.FindSchoolSubjectsByDict({ SchoolCode: this.schoolInfo.claimCode }).then(res => {
-        this.currentSubjectList = res.result.data;
-        this.subjectInfo = res.result.data[0];
-        this.subjectClick(res.result.data[0]);
-      })
+      this.findAllSubjects();
+      this.findSchoolSubjectsByDict();
+
     },
     },
     methods: {
     methods: {
-       //科目点击事件
+      //查找全部科目
+      findAllSubjects() {
+        this.$api.FindSubjectsByDict({}).then(res => {
+          this.subjectList = res.result.data;
+        })
+      },
+      //查找当前学校已有科目
+      findSchoolSubjectsByDict() {
+        this.$api.FindSchoolSubjectsByDict({ SchoolCode: this.schoolInfo.claimCode,Status:1 }).then(res => {
+          this.currentSubjectList = res.result.data;
+          if (res.result.data.length > 0) {
+             this.subjectInfo = res.result.data[0];
+             this.subjectClick(res.result.data[0]);
+          }
+          this.subjectLoading = false;
+          this.volumesLoading = false;
+          this.syllabusLoading = false;
+        })
+      },
+       //点击科目
       subjectClick(data) {
       subjectClick(data) {
+        this.volumesLoading = true;
         this.subjectInfo = data;
         this.subjectInfo = data;
         this.s_click_id = data.rowKey;
         this.s_click_id = data.rowKey;
         this.c_subject_id = data.rowKey;
         this.c_subject_id = data.rowKey;
@@ -209,22 +243,32 @@ import { setTimeout } from 'core-js';
         let defaultData = {
         let defaultData = {
           SchoolCode: this.schoolInfo.claimCode,
           SchoolCode: this.schoolInfo.claimCode,
           PartitionKey: data.partitionKey,
           PartitionKey: data.partitionKey,
-          SubjectCode: data.code
+          SubjectCode: data.code,
+          Status:1
         }
         }
         this.$api.FindSchoolVolumesByDict(defaultData).then(res => {
         this.$api.FindSchoolVolumesByDict(defaultData).then(res => {
           this.volumesList = res.result.data;
           this.volumesList = res.result.data;
           if (res.result.data.length > 0) {
           if (res.result.data.length > 0) {
             this.volumesClick(res.result.data[0]);
             this.volumesClick(res.result.data[0]);
           }
           }
+          this.volumesLoading = false;
          })
          })
       },
       },
+
       //点击编辑科目
       //点击编辑科目
       handleEditSubject(data, e) {
       handleEditSubject(data, e) {
         e.stopPropagation();
         e.stopPropagation();
         this.c_edit_id = data.rowKey;
         this.c_edit_id = data.rowKey;
       },
       },
-      //册别点击事件
+
+      //点击册别
       volumesClick(data) {
       volumesClick(data) {
+        this.syllabusLoading = true;
+        this.$api.FindSyllabusByVolumeCode({ VolumeCode: data.rowKey, Status:1 }).then(res => {
+          this.treeDatas = res.result.data;
+          this.volumeCode = data.rowKey;
+          this.syllabusLoading = false;
+        })
         this.c_click_id = data.rowKey;
         this.c_click_id = data.rowKey;
         this.c_term_id = data.rowKey;
         this.c_term_id = data.rowKey;
         this.t_edit_id = null;
         this.t_edit_id = null;
@@ -236,11 +280,21 @@ import { setTimeout } from 'core-js';
         this.t_edit_id = data.rowKey;
         this.t_edit_id = data.rowKey;
       },
       },
       //编辑科目input失焦
       //编辑科目input失焦
-      editSubject() {
+      editSubject(data) {
+        this.$api.SaveOrUpdateSchoolSubject(data).then(res => {
+            if (res.result.message == "Success") {
+              this.$Message.success("修改成功");
+            }
+          })
         this.c_edit_id = null;
         this.c_edit_id = null;
       },
       },
       //编辑册别input失焦
       //编辑册别input失焦
-      editTerm() {
+      editTerm(data) {
+          this.$api.SaveOrUpdateSchoolVolume(data).then(res => {
+            if (res.result.message == "Success") {
+              this.$Message.success("修改成功");
+            }
+          })
         this.t_edit_id = null;
         this.t_edit_id = null;
       },
       },
       //input聚焦
       //input聚焦
@@ -250,14 +304,21 @@ import { setTimeout } from 'core-js';
       //点击添加科目
       //点击添加科目
       addSubject() {
       addSubject() {
         let currentList = this.currentSubjectList;
         let currentList = this.currentSubjectList;
-        let allList = this.subjectList;
-        for (let i in allList) {
-          for (let j in currentList) {
-            if (allList[i].rowKey == currentList[j].code) {
-              allList.splice(i, 1);
+        this.$api.FindSubjectsByDict({}).then(res => {
+          this.subjectList = res.result.data;
+          let tempList = this.subjectList.slice(0);
+          if (currentList.length > 0) {
+            for (let i in tempList) {
+              for (let j in currentList) {
+                if (tempList[i].rowKey == currentList[j].code) {
+                  this.subjectList.splice(this.subjectList.indexOf(tempList[i]), 1);
+                }
+              }
             }
             }
           }
           }
-        }
+        })
+
+
         this.addSubjectModal = true;
         this.addSubjectModal = true;
         this.newSubjectList = [];
         this.newSubjectList = [];
 
 
@@ -266,20 +327,20 @@ import { setTimeout } from 'core-js';
       //确认添加科目
       //确认添加科目
       handleAddSubject() {
       handleAddSubject() {
         let newList = this.newSubjectList;
         let newList = this.newSubjectList;
-        let currentList = this.currentSubjectList;
         for (let i of newList) {
         for (let i of newList) {
           let defaultSubject = {
           let defaultSubject = {
             schoolCode: this.schoolInfo.claimCode,
             schoolCode: this.schoolInfo.claimCode,
             partitionKey: this.subjectList[i].partitionKey,
             partitionKey: this.subjectList[i].partitionKey,
             name: this.subjectList[i].name,
             name: this.subjectList[i].name,
             code: this.subjectList[i].rowKey,
             code: this.subjectList[i].rowKey,
+            status:1,
             schoolName:this.schoolInfo.claimName
             schoolName:this.schoolInfo.claimName
           };
           };
            this.$api.SaveOrUpdateSchoolSubject(defaultSubject).then(res => {
            this.$api.SaveOrUpdateSchoolSubject(defaultSubject).then(res => {
-             currentList.push(res.result.data);
+             this.currentSubjectList.push(res.result.data);
+             this.subjectClick(this.currentSubjectList[0]); //默认展开第一个
            })
            })
         }
         }
-        this.subjectClick(this.currentSubjectList[0]); //默认展开第一个
       },
       },
 
 
       //点击添加册别
       //点击添加册别
@@ -306,7 +367,6 @@ import { setTimeout } from 'core-js';
 
 
       //发送请求添加册别
       //发送请求添加册别
       handleAddTerm() {
       handleAddTerm() {
-        let that = this;
         //查询是否已存在此类册别
         //查询是否已存在此类册别
         this.$api.FindSchoolVolumesByDict({
         this.$api.FindSchoolVolumesByDict({
           SchoolCode: this.addVolumesData.schoolCode,
           SchoolCode: this.addVolumesData.schoolCode,
@@ -324,6 +384,7 @@ import { setTimeout } from 'core-js';
               okText: "确认",
               okText: "确认",
               cancelText:"取消",
               cancelText:"取消",
               onOk: () => {
               onOk: () => {
+                //存在即更新册别名字
                 this.$api.SaveOrUpdateSchoolVolume(this.addVolumesData).then(res => {
                 this.$api.SaveOrUpdateSchoolVolume(this.addVolumesData).then(res => {
                   this.c_term_id = res.result.data.rowKey;
                   this.c_term_id = res.result.data.rowKey;
                   this.c_click_id = res.result.data.rowKey;
                   this.c_click_id = res.result.data.rowKey;
@@ -333,11 +394,10 @@ import { setTimeout } from 'core-js';
                     }
                     }
                   }
                   }
                 })
                 })
-              },
-              onCancel: () => {
               }
               }
             });
             });
           } else {
           } else {
+            //不存在则直接加入列表
             this.$api.SaveOrUpdateSchoolVolume(this.addVolumesData).then(res => {
             this.$api.SaveOrUpdateSchoolVolume(this.addVolumesData).then(res => {
               this.volumesList.push(res.result.data);
               this.volumesList.push(res.result.data);
               this.c_term_id = res.result.data.rowKey;
               this.c_term_id = res.result.data.rowKey;
@@ -345,18 +405,48 @@ import { setTimeout } from 'core-js';
             })
             })
           }
           }
         })
         })
-
-
-
-
       },
       },
 
 
-      handleDeleteSubject() {
+      //删除科目,修改科目状态
+      handleDeleteSubject(data) {
+        data.status = 0;
         this.$Modal.confirm({
         this.$Modal.confirm({
           title: '删除科目',
           title: '删除科目',
           content: '<p>确认删除该科目?</p>',
           content: '<p>确认删除该科目?</p>',
+          okText: "确认",
+          cancelText:"取消",
+          onOk: () => {
+            this.$api.SaveOrUpdateSchoolSubject(data).then(res => {
+              data.status = 1;
+              this.$Message.success("删除成功");
+              this.currentSubjectList.splice(data, 1);
+              this.subjectList.push(data);
+              this.findSchoolSubjectsByDict();
+              if (this.currentSubjectList.length == 0) {
+                this.volumesList = [];
+                this.treeData = [];
+              }
+           })
+          },
+          onCancel: () => {
+            this.$Message.info('Clicked cancel');
+          }
+        });
+      },
+
+      //删除册别,修改册别状态
+      handleDeleteVolumes(data) {
+        data.status = 0;
+        this.$Modal.confirm({
+          title: '删除科目',
+          content: '<p>确认删除该册别?</p>',
+          okText: "确认",
+          cancelText:"取消",
           onOk: () => {
           onOk: () => {
-            this.$Message.info('Clicked ok');
+            this.$api.SaveOrUpdateSchoolVolume(data).then(res => {
+              this.$Message.success("删除成功");
+              this.subjectClick(this.subjectInfo);
+           })
           },
           },
           onCancel: () => {
           onCancel: () => {
             this.$Message.info('Clicked cancel');
             this.$Message.info('Clicked cancel');
@@ -430,265 +520,5 @@ import { setTimeout } from 'core-js';
   }
   }
 </script>
 </script>
 
 
-<style scoped>
-  .syllabus-main {
-    width: 100%;
-    height: 100%;
-    background: #fff;
-    padding: 20px;
-    box-sizing: border-box;
-  }
-
-  .content-wrap {
-    width: 100%;
-    height: 100%;
-    border: 2px solid #464646;
-  }
-
-  .header-wrap {
-    position:relative;
-    width: 100%;
-    height: 50px;
-    display:flex;
-    flex-direction:row;
-    justify-content:space-between;
-    border-bottom: 2px solid #464646;
-  }
-
-  .header-wrap /deep/ .ivu-input {
-    height: 48px;
-    border: 0;
-    padding-left:15px;
-    border-radius: 0 !important;
-    border-right: 2px solid #464646;
-    font-size: 14px;
-    font-weight: bold;
-    color: #464646;
-  }
-
-  .header-wrap /deep/ .ivu-input::-webkit-input-placeholder {
-    color: #464646;
-  }
-
-  .header-wrap /deep/ .ivu-input-suffix i {
-    line-height: 50px;
-  }
-
-  .header-right {
-    height:100%;
-    display:flex;
-    flex-direction:row;
-    justify-content:center;
-    align-items:center;
-  }
 
 
-  .header-right-item {
-    margin-right:25px;
-    font-weight:500;
-    font-size:12px;
-    cursor:pointer;
-  }
 
 
-  /deep/ .subject-modal .ivu-checkbox{
-    margin:10px;
-  }
-
-  .list-wrap {
-    width:100%;
-    height:100%;
-    display:flex;
-    flex-direction:row;
-    padding-bottom:50px;
-  }
-  .list-col {
-    height: 100%;
-    overflow-y:auto;
-  }
-
-  .list-col /deep/ .ivu-input-wrapper{
-    width:60%;
-  }
-  .term-userNum /deep/ .ivu-input-wrapper {
-    width:100%;
-  }
-  .pop-content  .ivu-checkbox-group {
-    display: flex;
-    flex-direction: column;
-    margin-top:20px;
-  }
-  .pop-content .ivu-checkbox-group-item {
-    margin:5px 10px;
-  }
-  .pop-content /deep/ .ivu-checkbox {
-    margin-right:10px;
-  }
-  .pop-content .ivu-tabs-tabpane {
-    max-height:300px;
-    overflow:auto;
-  }
-
-  .list-left {
-    width: 20%;
-    background-color: rgb(204,204,204);
-    margin-right:0px;
-  }
-  .list-middle {
-    width: 35%;
-    background-color: rgb(230,230,230);
-    border-left: 2px solid #464646;
-    border-right: 1px solid #464646;
-  }
-  .list-right {
-    width: 45%;
-    background-color: rgb(242,242,242);
-  }
-  .subject-item {
-    width: 100%;
-    height: 80px;
-    display: flex;
-    flex-direction: column;
-    justify-content: center;
-    padding-left: 15px;
-    border-bottom: 1px solid #464646;
-    cursor: pointer;
-  }
-  .subject-item:hover{
-    background:#fff;
-  }
-
-  .subject-name {
-    font-size:18px;
-    font-weight:600;
-   }
-
-  .term-item {
-    height:auto;
-    padding:10px;
-  }
-
-  .term-item-active {
-    background:#fff;
-  }
-
-  .term-period {
-    margin: 5px 0;
-    font-size:14px;
-  }
-
-  .term-name-title {
-    font-size:18px;
-    font-weight:600;
-  }
-
-  .term-add-user {
-    text-decoration:underline;
-    cursor:pointer;
-  }
-
-  .term-users {
-    width: 100%;
-    background: #fff;
-    display: flex;
-    flex-direction: row;
-    flex-wrap: wrap;
-    margin-top: 10px;
-  }
-  .term-user-item {
-    padding:5px;
-    margin:5px;
-  }
-  .term-user-img {
-    width: 20px;
-    height: 20px;
-    border-radius: 50%;
-  }
-  .term-user-name {
-    margin-left: 5px;
-    color: rgb(139, 139, 139);
-  }
-  .centerCol {
-    display: flex;
-    flex-direction: column;
-    justify-content: center;
-    align-items: center;
-  }
-  .center {
-    display: flex;
-    flex-direction: row;
-    justify-content: center;
-    align-items: center;
-  }
-
-  .list-col::-webkit-scrollbar { /*滚动条整体样式*/
-    width: 0px; /*高宽分别对应横竖滚动条的尺寸*/
-    height: 1px;
-  }
-
-  .list-col:hover .ztree_box::-webkit-scrollbar {
-    width: 5px;
-  }
-
-  .list-col::-webkit-scrollbar-thumb { /*滚动条里面小方块*/
-    border-radius: 10px;
-    -webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
-    background: #ffffff26;
-  }
-
-  .list-col::-webkit-scrollbar-track { /*滚动条里面轨道*/
-    background: #f4f4f400;
-  }
-
-  .s-block-tools {
-    margin-left: 10px;
-  }
-
-  .s-block-tools .ivu-icon {
-    margin-left: 5px;
-    margin-bottom:2px;
-    font-size: 16px;
-    color: rgb(185, 185, 185);
-  }
-
-  .modal-title {
-    margin:10px 5px;
-  }
-
-  .animated {
-    animation-duration: 0.2s;
-  }
-
-  @-webkit-keyframes slideInDown {
-    from {
-      -webkit-transform: translate3d(0,-40%, 0);
-      transform: translate3d(0, -40%, 0) !important;
-      visibility: visible;
-    }
-
-    to {
-      -webkit-transform: translate3d(0, 0%, 0);
-      transform: translate3d(0, 0%, 0);
-    }
-  }
-
-  @keyframes slideInDown {
-    from {
-      -webkit-transform: translate3d(0, -20%, 0);
-      transform: translate3d(0, -20%, 0) !important;
-      visibility: visible;
-    }
-
-    to {
-      -webkit-transform: translate3d(0, 0%, 0);
-      transform: translate3d(0, 0%, 0);
-    }
-  }
-
-  .slideInDown {
-    -webkit-animation-name: slideInDown;
-    animation-name: slideInDown;
-  }
-
-  .d-none {
-    display:none;
-  }
-</style>

+ 37 - 22
TEAMModelOS/ClientApp/view/sak/Syllabus.vue

@@ -1,22 +1,28 @@
+<style>
+  @import 'Syllabus.css';
+  @import 'KnowPoint.css';
+  @import '../../../assets/CSS/syllabus/common.css';
+</style>
+
 <template>
 <template>
   <div class="index">
   <div class="index">
-     <div class="sak-header">
-       <Headers></Headers>
-     </div>
-     <div class="sak-main center">
-       <div class="sak-left">
-         <Syllabus></Syllabus>
-       </div>
-       <div class="sak-right">
-         <KnowPoint></KnowPoint>
-       </div>
-     </div>
+    <div class="sak-header">
+      <Headers :parentToChild="syllabusTitle" :identityselect="identitydata"></Headers>
+    </div>
+    <div class="sak-main center">
+      <div class="sak-left">
+        <Syllabus></Syllabus>
+      </div>
+      <div class="sak-right">
+        <KnowPoint></KnowPoint>
+      </div>
+    </div>
   </div>
   </div>
 </template>
 </template>
 <script>
 <script>
   import Headers from '@/common/headers.vue'
   import Headers from '@/common/headers.vue'
-  import Syllabus from '@/common/Syllabus.vue'
-  import KnowPoint from '@/common/KnowPoint.vue'
+  import Syllabus from './Syllabus.vue'
+  import KnowPoint from './KnowPoint.vue'
   export default {
   export default {
     name: "app",
     name: "app",
     components: {
     components: {
@@ -26,19 +32,24 @@
     },
     },
     data() {
     data() {
       return {
       return {
+        syllabusTitle: "课纲管理/知识点管理",
         schoolName: "",
         schoolName: "",
         username: "",
         username: "",
-        activeIndex: sessionStorage.getItem('kIndex') || 0
+        activeIndex: sessionStorage.getItem('kIndex') || 0,
+        identitydata: [
+          { "id": 1, "name": '成都紫藤小学', "rolename": '管理员', status: '1' },
+          { "id": 2, "name": '成都七中小学', "rolename": '班主任', status: '2' }
+        ],
       }
       }
     },
     },
     created() {
     created() {
-    
+
     },
     },
     methods: {
     methods: {
 
 
     },
     },
     mounted() {
     mounted() {
-      
+
     }
     }
   }
   }
 </script>
 </script>
@@ -46,8 +57,8 @@
   .index {
   .index {
     position: relative;
     position: relative;
     width: 100%;
     width: 100%;
-    height:100%;
-    overflow-y:hidden;
+    height: 100%;
+    overflow-y: hidden;
     min-width: 1366px;
     min-width: 1366px;
     background: #fff;
     background: #fff;
     -moz-user-select: none; /*火狐 firefox*/
     -moz-user-select: none; /*火狐 firefox*/
@@ -58,10 +69,12 @@
     flex-direction: column;
     flex-direction: column;
     align-items: center;
     align-items: center;
   }
   }
-  .sak-header{
-     width:100%;
-     height:60px;
+
+  .sak-header {
+    width: 100%;
+    height: 60px;
   }
   }
+
   .sak-main {
   .sak-main {
     width: 100%;
     width: 100%;
     height: 100%;
     height: 100%;
@@ -71,10 +84,12 @@
     width: 60%;
     width: 60%;
     height: 100%;
     height: 100%;
   }
   }
+
   .sak-right {
   .sak-right {
-    width: 40%; 
+    width: 40%;
     height: 100%;
     height: 100%;
   }
   }
+
   .center {
   .center {
     display: flex;
     display: flex;
     flex-direction: row;
     flex-direction: row;