|
@@ -1,5 +1,6 @@
|
|
<template>
|
|
<template>
|
|
<div style="display: flex;flex-direction: column;gap: 20px;height: 100%;">
|
|
<div style="display: flex;flex-direction: column;gap: 20px;height: 100%;">
|
|
|
|
+
|
|
<div class="top">
|
|
<div class="top">
|
|
<div class="topTit">
|
|
<div class="topTit">
|
|
<div>
|
|
<div>
|
|
@@ -7,13 +8,17 @@
|
|
<div style="height: 4px;background-color: #0663FE;width: 2rem;margin-top: 6px;"></div>
|
|
<div style="height: 4px;background-color: #0663FE;width: 2rem;margin-top: 6px;"></div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div>
|
|
- <img src="../../../assets/img/bianji.svg" alt="">
|
|
|
|
|
|
+ <img v-if="userinfo.role == 1 && userinfo.type == 1"
|
|
|
|
+ class="topTitEdit"
|
|
|
|
+ @click="editregion(0)"
|
|
|
|
+ src="../../../assets/img/bianji.svg" alt="">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="Topbri">
|
|
<div class="Topbri">
|
|
- {{ fromL.admin.CampusF.GroupBri }}
|
|
|
|
|
|
+ {{ fromL.admin.CampusF ? fromL.admin.CampusF.GroupBri : '' }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
<div class="feature">
|
|
<div class="feature">
|
|
<div class="topTit">
|
|
<div class="topTit">
|
|
<div>
|
|
<div>
|
|
@@ -21,16 +26,25 @@
|
|
<div style="height: 4px;background-color: #0663FE;width: 2rem;margin-top: 6px;"></div>
|
|
<div style="height: 4px;background-color: #0663FE;width: 2rem;margin-top: 6px;"></div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div>
|
|
- <img src="../../../assets/img/bianji.svg" alt="">
|
|
|
|
|
|
+ <img v-if="userinfo.role == 1 && userinfo.type == 1"
|
|
|
|
+ class="topTitEdit"
|
|
|
|
+ @click="editregion(1)"
|
|
|
|
+ src="../../../assets/img/bianji.svg" alt="">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <div style="display: flex;justify-content: space-between;">
|
|
|
|
- <div class="featureCon" v-for="(i, index) in featureList" :key="index">
|
|
|
|
- <img style="width: 24px;" src="../../../assets/img/tese.svg" alt="">
|
|
|
|
- <div class="featureConTit">{{ i.name }}</div>
|
|
|
|
- <div class="Topbri">{{ i.bri }}</div>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <div class="featureAll">
|
|
|
|
+ <template v-if="featureList.length">
|
|
|
|
+ <div class="featureCon" v-for="(i, index) in featureList" :key="index">
|
|
|
|
+ <img style="width: 34px;height: 34px;object-fit: contain;" :src="i.icon" alt="">
|
|
|
|
+ <div class="featureConTit">{{ i.name }}</div>
|
|
|
|
+
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="i.bri" placement="bottom">
|
|
|
|
+ <div class="Topbri2">{{ i.bri }}</div>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@@ -41,14 +55,22 @@
|
|
<div style="height: 4px;background-color: #0663FE;width: 2rem;margin-top: 6px;"></div>
|
|
<div style="height: 4px;background-color: #0663FE;width: 2rem;margin-top: 6px;"></div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div>
|
|
- <img src="../../../assets/img/bianji.svg" alt="">
|
|
|
|
|
|
+ <img v-if="userinfo.role == 1 && userinfo.type == 1"
|
|
|
|
+ class="topTitEdit"
|
|
|
|
+ @click="editregion(2)"
|
|
|
|
+ src="../../../assets/img/bianji.svg" alt="">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="Topbri">
|
|
<div class="Topbri">
|
|
- {{ fromL.admin.CampusF.GroupBri }}
|
|
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="fromL.admin.CampusF ? fromL.admin.CampusF.teacherN.teaBri : ''" placement="bottom">
|
|
|
|
+ <span>
|
|
|
|
+ {{ fromL.admin.CampusF ? fromL.admin.CampusF.teacherN.teaBri : ''}}
|
|
|
|
+ </span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <div style="display: flex;justify-content: space-between;">
|
|
|
|
|
|
+ <div class="featureAll">
|
|
<div class="featureCon2" v-for="(i, index) in teaData" :key="index">
|
|
<div class="featureCon2" v-for="(i, index) in teaData" :key="index">
|
|
<div class="featureConTit2">{{ i.bri }}</div>
|
|
<div class="featureConTit2">{{ i.bri }}</div>
|
|
<div class="Topbri">{{ i.name }}</div>
|
|
<div class="Topbri">{{ i.name }}</div>
|
|
@@ -63,84 +85,542 @@
|
|
<div style="height: 4px;background-color: #0663FE;width: 2rem;margin-top: 6px;"></div>
|
|
<div style="height: 4px;background-color: #0663FE;width: 2rem;margin-top: 6px;"></div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div>
|
|
- <img src="../../../assets/img/bianji.svg" alt="">
|
|
|
|
|
|
+ <img v-if="userinfo.role == 1 && userinfo.type == 1"
|
|
|
|
+ class="topTitEdit"
|
|
|
|
+ src="../../../assets/img/bianji.svg" alt="">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="AppStoreList">
|
|
<div class="AppStoreList">
|
|
- <div class="AppStore" v-for="(i,index) in featureApp" :key="index">
|
|
|
|
- <img style="width: 24px;" src="../../../assets/img/bianji.svg" alt="">
|
|
|
|
- <div class="AppStoreCon">
|
|
|
|
- <img style="width: 18px;margin-bottom: 10px;" src="../../../assets/img/tese.svg" alt="">
|
|
|
|
- <div class="AppStoreConTit">{{i.name}}</div>
|
|
|
|
- <div class="AppStoreConBri">{{i.detail}}</div>
|
|
|
|
|
|
+ <template v-if="fromL.admin.CampusF">
|
|
|
|
+ <div class="AppStore" v-for="(i,index) in fromL.admin.CampusF.appList" :key="index">
|
|
|
|
+ <!-- <img style="width: 24px;" src="../../../assets/img/bianji.svg" alt=""> -->
|
|
|
|
+ <div class="AppStoreCon">
|
|
|
|
+ <img style="width: 32px;height: 32px;margin-bottom: 10px;object-fit: contain;"
|
|
|
|
+ :src="i.setIcon ? i.setIcon : i.json.icon" alt="">
|
|
|
|
+ <div class="AppStoreConTit">{{i.name}}</div>
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="i.detail" placement="bottom">
|
|
|
|
+ <div class="AppStoreConBri">{{i.detail}}</div>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
|
|
+ </template>
|
|
|
|
+
|
|
|
|
|
|
- <div class="AppStore">
|
|
|
|
- <div style="height: 24px;"></div>
|
|
|
|
|
|
+ <div class="AppStore"
|
|
|
|
+ v-if="userinfo.role == 1 && userinfo.type == 1 && fromL.admin.CampusF && fromL.admin.CampusF.appList.length < 8"
|
|
|
|
+ @click="editregion(3)">
|
|
|
|
+ <!-- <div style="height: 24px;"></div> -->
|
|
<div class="AppAdd">
|
|
<div class="AppAdd">
|
|
<img src="../../../assets/img/add.svg" alt="">
|
|
<img src="../../../assets/img/add.svg" alt="">
|
|
</div>
|
|
</div>
|
|
- <div>
|
|
|
|
-
|
|
|
|
- </div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <!-- 修改校区特色弹框 -->
|
|
|
|
+ <el-dialog
|
|
|
|
+ title="添加"
|
|
|
|
+ :visible.sync="editVisible"
|
|
|
|
+ close-on-click-modal
|
|
|
|
+ class="Fedialog"
|
|
|
|
+ :before-close="handleClose">
|
|
|
|
+
|
|
|
|
+ <el-input
|
|
|
|
+ v-if="isBtn === 0"
|
|
|
|
+ type="textarea"
|
|
|
|
+ :rows="4"
|
|
|
|
+ placeholder="请输入内容"
|
|
|
|
+ v-model="CampusF.GroupBri">
|
|
|
|
+ </el-input>
|
|
|
|
+
|
|
|
|
+ <el-table
|
|
|
|
+ :data="CampusF.feature"
|
|
|
|
+ v-if="isBtn === 1"
|
|
|
|
+ stripe
|
|
|
|
+ border
|
|
|
|
+ style="width: 100%"
|
|
|
|
+ >
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="icon"
|
|
|
|
+ min-width="200"
|
|
|
|
+ show-overflow-tooltip
|
|
|
|
+ >
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <img style="height: 30px;width: 30px;object-fit: cover;" :src="scope.row.icon" alt="">
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="标题"
|
|
|
|
+ min-width="200"
|
|
|
|
+ show-overflow-tooltip
|
|
|
|
+ >
|
|
|
|
+ <template slot-scope="scope">{{
|
|
|
|
+ scope.row.name ? scope.row.name : "-"
|
|
|
|
+ }}</template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="简介"
|
|
|
|
+ min-width="200"
|
|
|
|
+ show-overflow-tooltip
|
|
|
|
+ >
|
|
|
|
+ <template slot-scope="scope">{{
|
|
|
|
+ scope.row.bri ? scope.row.bri : "-"
|
|
|
|
+ }}</template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="修改"
|
|
|
|
+ min-width="200"
|
|
|
|
+ show-overflow-tooltip
|
|
|
|
+ >
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <button
|
|
|
|
+ @click="editRunS(scope.$index,scope.row,0)"
|
|
|
|
+ style="
|
|
|
|
+ color: #308fff;
|
|
|
|
+ background: none;
|
|
|
|
+ border: none;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ margin-left: 25px;
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ 修改
|
|
|
|
+ </button>
|
|
|
|
+ <button
|
|
|
|
+ v-if="CampusF.feature.length > 1"
|
|
|
|
+ @click="delFe(scope.$index,0)"
|
|
|
|
+ style="
|
|
|
|
+ color: red;
|
|
|
|
+ background: none;
|
|
|
|
+ border: none;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ margin-left: 25px;
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ 删除
|
|
|
|
+ </button>
|
|
|
|
+ <button
|
|
|
|
+ v-if="scope.$index == CampusF.feature.length - 1"
|
|
|
|
+ @click="add1(scope.$index)"
|
|
|
|
+ style="
|
|
|
|
+ color: #308fff;
|
|
|
|
+ background: none;
|
|
|
|
+ border: none;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ margin-left: 25px;
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ 添加
|
|
|
|
+ </button>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <div class="ea_appList" v-if="isBtn === 2">
|
|
|
|
+ <el-input
|
|
|
|
+ style="margin-bottom: 10px;"
|
|
|
|
+ type="textarea"
|
|
|
|
+ :rows="2"
|
|
|
|
+ resize="none"
|
|
|
|
+ placeholder="请输入描述"
|
|
|
|
+ v-model="CampusF.teacherN.teaBri">
|
|
|
|
+ </el-input>
|
|
|
|
+ <el-table
|
|
|
|
+ :data="CampusF.teacherN.list"
|
|
|
|
+ stripe
|
|
|
|
+ border
|
|
|
|
+ style="width: 100%"
|
|
|
|
+ >
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="标题"
|
|
|
|
+ min-width="200"
|
|
|
|
+ show-overflow-tooltip
|
|
|
|
+ >
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ {{ scope.row.name ? scope.row.name : "-" }}
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="简介"
|
|
|
|
+ min-width="200"
|
|
|
|
+ show-overflow-tooltip
|
|
|
|
+ >
|
|
|
|
+ <template slot-scope="scope">{{
|
|
|
|
+ scope.row.bri ? scope.row.bri : "-"
|
|
|
|
+ }}</template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="修改"
|
|
|
|
+ min-width="200"
|
|
|
|
+ show-overflow-tooltip
|
|
|
|
+ >
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <button
|
|
|
|
+ @click="editRunS(scope.$index,scope.row,1)"
|
|
|
|
+ style="
|
|
|
|
+ color: #308fff;
|
|
|
|
+ background: none;
|
|
|
|
+ border: none;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ margin-left: 25px;
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ 修改
|
|
|
|
+ </button>
|
|
|
|
+
|
|
|
|
+ <button
|
|
|
|
+ v-if="CampusF.teacherN.list.length > 1"
|
|
|
|
+ @click="delFe(scope.$index,1)"
|
|
|
|
+ style="
|
|
|
|
+ color: red;
|
|
|
|
+ background: none;
|
|
|
|
+ border: none;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ margin-left: 25px;
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ 删除
|
|
|
|
+ </button>
|
|
|
|
+
|
|
|
|
+ <button
|
|
|
|
+ v-if="scope.$index == CampusF.teacherN.list.length - 1"
|
|
|
|
+ @click="add2(scope.$index,scope.row,0)"
|
|
|
|
+ style="
|
|
|
|
+ color: #308fff;
|
|
|
|
+ background: none;
|
|
|
|
+ border: none;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ margin-left: 25px;
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ 添加
|
|
|
|
+ </button>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div class="ea_appList" v-if="isBtn === 3">
|
|
|
|
+ <div style="display: grid;grid-template-columns: repeat(3, minmax(0, 1fr));gap: 20px;">
|
|
|
|
+ <div
|
|
|
|
+ class="appItem"
|
|
|
|
+ v-for="(item, index) in CampusF.appList"
|
|
|
|
+ :key="item.id"
|
|
|
|
+ >
|
|
|
|
+ <div class="ai_left">
|
|
|
|
+ <el-image
|
|
|
|
+ style="width: 100%; height: 100%; cursor: pointer"
|
|
|
|
+ :src="item.setIcon ? item.setIcon : item.json.icon"
|
|
|
|
+ fit="cover"
|
|
|
|
+ @click="updateIconCocoFLow(index)"
|
|
|
|
+ ></el-image>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="ai_right">
|
|
|
|
+ <div>{{ item.name }}</div>
|
|
|
|
+ <div class="ai_r_btn">
|
|
|
|
+ <!-- <span @click="moveApp(item.id, 0)">上</span>
|
|
|
|
+ <span @click="moveApp(item.id, 1)">下</span> -->
|
|
|
|
+ </div>
|
|
|
|
+ <span>{{ item.detail }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
|
+ <el-button @click="handleClose">取 消</el-button>
|
|
|
|
+ <el-button type="primary" @click="setJson">确 定</el-button>
|
|
|
|
+ </span>
|
|
|
|
+ </el-dialog>
|
|
|
|
+
|
|
|
|
+ <addCampusDialog ref="addCampusDialogRef" @success="addCampusSuccess" />
|
|
|
|
+
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
import { mapGetters } from 'vuex';
|
|
import { mapGetters } from 'vuex';
|
|
import { API_CONFIG } from '../../../common/apiConfig.js';
|
|
import { API_CONFIG } from '../../../common/apiConfig.js';
|
|
|
|
+import addCampusDialog from "./addCampusDialog";
|
|
|
|
+import { myMixin } from "@/mixins/mixin.js"
|
|
|
|
+
|
|
|
|
+import axios from '@/common/axios.config'; // 引入 axios 配置实例
|
|
|
|
+import store from '../../../store'
|
|
|
|
+
|
|
export default {
|
|
export default {
|
|
|
|
+ mixins: [ myMixin ],
|
|
|
|
+
|
|
|
|
+ components: {
|
|
|
|
+ addCampusDialog
|
|
|
|
+ },
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
- featureApp:[]
|
|
|
|
|
|
+ featureApp:[],
|
|
|
|
+ // 判断弹框是添加还是编辑
|
|
|
|
+ editTtype:0,
|
|
|
|
+ // 添加与编辑弹框显示
|
|
|
|
+ editVisible:false,
|
|
|
|
+
|
|
|
|
+ loading:false,
|
|
|
|
+
|
|
|
|
+ // 判断点击的哪个部分的编辑按钮
|
|
|
|
+ isBtn:-1,
|
|
|
|
+
|
|
|
|
+ // 所有应用列表
|
|
|
|
+ appList:[],
|
|
|
|
+
|
|
|
|
+ // 页面校区特色数据
|
|
|
|
+ CampusF:[],
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 修改校区特色信息
|
|
|
|
+ CampusData:'',
|
|
|
|
+ CampusType:0,
|
|
|
|
+ // 0 办学特色 1 师资力量
|
|
|
|
+ CampusNum:0,
|
|
}
|
|
}
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
- ...mapGetters(['fromL']),
|
|
|
|
|
|
+ ...mapGetters(['fromL','userinfo']),
|
|
featureList() {
|
|
featureList() {
|
|
- return this.fromL.admin.CampusF.feature; // 从 Vuex 的 fromL 中获取 featureList
|
|
|
|
|
|
+ if (this.fromL.admin.CampusF) {
|
|
|
|
+ return this.fromL.admin.CampusF.feature; // 从 Vuex 的 fromL 中获取 featureList
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ return []
|
|
|
|
+ }
|
|
},
|
|
},
|
|
teaData() {
|
|
teaData() {
|
|
- return this.fromL.admin.CampusF.teacherN.list; // 从 Vuex 的 fromL 中获取 teaData
|
|
|
|
|
|
+ if (this.fromL.admin.CampusF) {
|
|
|
|
+ return this.fromL.admin.CampusF.teacherN.list; // 从 Vuex 的 fromL 中获取 teaData
|
|
|
|
+ }else{
|
|
|
|
+ return []
|
|
|
|
+ }
|
|
},
|
|
},
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
- // 获取cocoFlow2应用
|
|
|
|
- getData() {
|
|
|
|
- let cocoFlowCopy = []
|
|
|
|
- if (this.fromL.admin.cocoFlow2 && this.fromL.admin.cocoFlow2.length) {
|
|
|
|
- cocoFlowCopy = this.fromL.admin.cocoFlow2.map(item => item.id);
|
|
|
|
- } else {
|
|
|
|
- return
|
|
|
|
|
|
+
|
|
|
|
+ // 点击区块编辑
|
|
|
|
+ async editregion(type){
|
|
|
|
+ if (type == 3) this.getAppData()
|
|
|
|
+ this.isBtn = type
|
|
|
|
+ this.editVisible = true
|
|
|
|
+ },
|
|
|
|
+ handleClose(){
|
|
|
|
+ this.editVisible = false
|
|
|
|
+ this.isBtn = -1
|
|
|
|
+ this.appList = []
|
|
|
|
+
|
|
|
|
+ // 修改校区特色信息
|
|
|
|
+ this.CampusData=''
|
|
|
|
+ this.CampusType=0
|
|
|
|
+ // 0 办学特色 1 师资力量
|
|
|
|
+ this.CampusNum=0
|
|
|
|
+
|
|
|
|
+ if (this.fromL.admin.CampusF) {
|
|
|
|
+ this.CampusF = JSON.parse(JSON.stringify(this.fromL.admin.CampusF))
|
|
}
|
|
}
|
|
|
|
|
|
- let params = [
|
|
|
|
- {
|
|
|
|
- functionName: API_CONFIG.ajax_AdminApp.functionName,
|
|
|
|
- con: cocoFlowCopy.join(','),
|
|
|
|
- },
|
|
|
|
- ];
|
|
|
|
-
|
|
|
|
- this.$ajax
|
|
|
|
- .post(API_CONFIG.baseUrl, params)
|
|
|
|
- .then((res) => {
|
|
|
|
- this.featureApp = res.data[0]
|
|
|
|
- // console.log("后端传的数据", this.featureApp);
|
|
|
|
-
|
|
|
|
- })
|
|
|
|
- .catch((err) => {
|
|
|
|
- console.log(err);
|
|
|
|
- });
|
|
|
|
},
|
|
},
|
|
|
|
+ // 添加办学特色
|
|
|
|
+ add1(){
|
|
|
|
+ this.CampusNum = this.CampusF.feature.length
|
|
|
|
+ this.CampusType = 0
|
|
|
|
+
|
|
|
|
+ // this.CampusF.feature.push({bri:'',icon:'',name:''})
|
|
|
|
+ this.$refs.addCampusDialogRef.open({bri:'',icon:'',name:''}, 0);
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ // 添加师资力量
|
|
|
|
+ add2(){
|
|
|
|
+ this.CampusNum = this.CampusF.teacherN.list.length
|
|
|
|
+ this.CampusType = 1
|
|
|
|
+ this.$refs.addCampusDialogRef.open({bri:'',name:''}, 1);
|
|
|
|
+
|
|
|
|
+ // this.CampusF.teacherN.list.push()
|
|
|
|
+ },
|
|
|
|
+ // 修改办学特色
|
|
|
|
+ editRunS(index,val,type){
|
|
|
|
+ this.CampusData = val
|
|
|
|
+ this.CampusType = type
|
|
|
|
+ this.CampusNum = index
|
|
|
|
+ this.$refs.addCampusDialogRef.open(val, type);
|
|
|
|
+ },
|
|
|
|
+ //修改 0 办学特色 1 师资力量
|
|
|
|
+ addCampusSuccess(val){
|
|
|
|
+ console.log('val',val);
|
|
|
|
+ console.log('CampusType',this.CampusType);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if (this.CampusType == 0) {
|
|
|
|
+ this.CampusF.feature.splice(this.CampusNum,1,val.item)
|
|
|
|
+ }else{
|
|
|
|
+ this.CampusF.teacherN.list.splice(this.CampusNum,1,val.item)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // 删除办学特色
|
|
|
|
+ delFe(index,type){
|
|
|
|
+ if (type == 0) {
|
|
|
|
+ this.CampusF.feature.splice(index,1)
|
|
|
|
+ }else{
|
|
|
|
+ this.CampusF.teacherN.list.splice(index,1)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ moveApp(){
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ getAppData() {
|
|
|
|
+ return new Promise((resolve) => {
|
|
|
|
+ let params = [
|
|
|
|
+ {
|
|
|
|
+ functionName: "select_schUsuallyApp",
|
|
|
|
+ userid: "",
|
|
|
|
+ stand: "cn",
|
|
|
|
+ },
|
|
|
|
+ ];
|
|
|
|
+ this.loading = true;
|
|
|
|
+ this.$ajax
|
|
|
|
+ .post(API_CONFIG.baseUrl, params)
|
|
|
|
+ .then((res) => {
|
|
|
|
+ let _data = res.data;
|
|
|
|
+ let _list = _data[0];
|
|
|
|
+ _list.forEach((i) => {
|
|
|
|
+ i.json = JSON.parse(i.json);
|
|
|
|
+ });
|
|
|
|
+ this.appList = _list;
|
|
|
|
+ // this.loading = false;
|
|
|
|
+ resolve(_list);
|
|
|
|
+ })
|
|
|
|
+ .catch((err) => {
|
|
|
|
+ console.log(err);
|
|
|
|
+ // this.loading = false;
|
|
|
|
+ this.$message.error("获取应用数据失败");
|
|
|
|
+ // this.close();
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ // 提交
|
|
|
|
+ setJson() {
|
|
|
|
+ this.loading = true;
|
|
|
|
+
|
|
|
|
+ let _form = JSON.parse(JSON.stringify(this.fromL));
|
|
|
|
+
|
|
|
|
+ _form.desktop.list = _form.desktop.list.map((i) => i.id);
|
|
|
|
+
|
|
|
|
+ _form.admin.index.list = _form.admin.index.list.map((i) => i.id);
|
|
|
|
+
|
|
|
|
+ _form.admin.sidebar.list.forEach((i, index) => {
|
|
|
|
+ if (i.children) {
|
|
|
|
+ _form.admin.sidebar.list[index].children = i.children.map(
|
|
|
|
+ (i) => i.id
|
|
|
|
+ );
|
|
|
|
+ } else {
|
|
|
|
+ _form.admin.sidebar.list[index] = i.id;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ _form.admin.cocoFlow = _form.admin.cocoFlow
|
|
|
|
+ ? _form.admin.cocoFlow.map((i) => {
|
|
|
|
+ return { id: i.id, setIcon: i.setIcon }})
|
|
|
|
+ : [];
|
|
|
|
+
|
|
|
|
+ _form.admin.cocoFlow2 = _form.admin.cocoFlow2
|
|
|
|
+ ? _form.admin.cocoFlow2.map((i) => {
|
|
|
|
+ return { id: i.id, setIcon: i.setIcon }})
|
|
|
|
+ : [];
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ _form.admin.CampusF = this.CampusF
|
|
|
|
+
|
|
|
|
+ _form.admin.CampusF.appList = this.CampusF.appList
|
|
|
|
+ ? this.CampusF.appList.map((i) => {
|
|
|
|
+ return { id: i.id, setIcon: i.setIcon }})
|
|
|
|
+ : [];
|
|
|
|
+
|
|
|
|
+ let params = [
|
|
|
|
+ {
|
|
|
|
+ functionName: "update_orgOroid_json_byId",
|
|
|
|
+ id: this.userinfo.organizeid,
|
|
|
|
+ ujson: JSON.stringify(_form),
|
|
|
|
+ type: 'school',
|
|
|
|
+ },
|
|
|
|
+ ];
|
|
|
|
+ console.log('params',params);
|
|
|
|
+
|
|
|
|
+ console.log('_form',_form);
|
|
|
|
+
|
|
|
|
+ axios.post(API_CONFIG.baseUrl, params)
|
|
|
|
+ .then(async (res) => {
|
|
|
|
+ let _data = res.data;
|
|
|
|
+ if (_data == 1) {
|
|
|
|
+ this.$message.success("修改权限成功");
|
|
|
|
+ // this.$emit("getData");
|
|
|
|
+
|
|
|
|
+ await store.dispatch('user/getschPerInfo')
|
|
|
|
+
|
|
|
|
+ // await addOp({
|
|
|
|
+ // uid: this.userid,
|
|
|
|
+ // cid: this.data.id,
|
|
|
|
+ // type: "user_op",
|
|
|
|
+ // content: `修改了${this.data.name}的权限设置`,
|
|
|
|
+ // });
|
|
|
|
+ this.handleClose();
|
|
|
|
+
|
|
|
|
+ this.addOp3('1', "", {
|
|
|
|
+ uid: this.userinfo.userid,
|
|
|
|
+ cid: this.userinfo.organizeid,
|
|
|
|
+ type: "user_op",
|
|
|
|
+ content: `修改了${this.userinfo.schoolName}的权限设置`,
|
|
|
|
+ }, "success")
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ this.$message.error("修改权限失败");
|
|
|
|
+ }
|
|
|
|
+ this.loading = false;
|
|
|
|
+ })
|
|
|
|
+ .catch((err) => {
|
|
|
|
+
|
|
|
|
+ console.log(err);
|
|
|
|
+ this.loading = false;
|
|
|
|
+ this.$message.error("修改权限失败");
|
|
|
|
+
|
|
|
|
+ this.addOp3('1', "", {
|
|
|
|
+ uid: this.userid,
|
|
|
|
+ cid: this.data.id,
|
|
|
|
+ type: "user_op",
|
|
|
|
+ content: `修改了${this.data.name}的权限设置`,
|
|
|
|
+ }, err)
|
|
|
|
+ });
|
|
|
|
+ },
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
- this.getData()
|
|
|
|
|
|
+ if (this.fromL.admin.CampusF) {
|
|
|
|
+ this.CampusF = JSON.parse(JSON.stringify(this.fromL.admin.CampusF))
|
|
|
|
+ }else {
|
|
|
|
+ this.CampusF = {
|
|
|
|
+ GroupBri:'暂无简介',
|
|
|
|
+ feature:[
|
|
|
|
+ {bri:'暂无简介',icon:'https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/tese1745913146000.svg',name:'默认标题'}
|
|
|
|
+ ],
|
|
|
|
+ teacherN:{
|
|
|
|
+ teaBri:'暂无简介',
|
|
|
|
+ list: [
|
|
|
|
+ {bri:'默认标题',name:'暂无数据'}
|
|
|
|
+ ],
|
|
|
|
+ },
|
|
|
|
+ appList: [],
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
@@ -160,24 +640,34 @@ export default {
|
|
.topTit {
|
|
.topTit {
|
|
font-family: PingFang SC;
|
|
font-family: PingFang SC;
|
|
font-weight: 600;
|
|
font-weight: 600;
|
|
- font-size: 20px;
|
|
|
|
|
|
+ font-size: 18px;
|
|
line-height: 22px;
|
|
line-height: 22px;
|
|
color: #0663FE;
|
|
color: #0663FE;
|
|
display: flex;
|
|
display: flex;
|
|
height: 36px;
|
|
height: 36px;
|
|
justify-content: space-between;
|
|
justify-content: space-between;
|
|
}
|
|
}
|
|
-.topTit img{
|
|
|
|
|
|
+.topTit .topTitEdit{
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
.Topbri{
|
|
.Topbri{
|
|
font-family: PingFang SC;
|
|
font-family: PingFang SC;
|
|
font-weight: 400;
|
|
font-weight: 400;
|
|
- font-size: 12px;
|
|
|
|
|
|
+ font-size: 14px;
|
|
line-height: 22px;
|
|
line-height: 22px;
|
|
color: #000;
|
|
color: #000;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+.Topbri2{
|
|
|
|
+ font-family: PingFang SC;
|
|
|
|
+ font-weight: 400;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ color: #000;
|
|
|
|
+ display: -webkit-box;
|
|
|
|
+ -webkit-line-clamp: 2;
|
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
+}
|
|
.feature {
|
|
.feature {
|
|
width: 100%;
|
|
width: 100%;
|
|
padding: 36px 27px;
|
|
padding: 36px 27px;
|
|
@@ -192,8 +682,8 @@ export default {
|
|
|
|
|
|
.featureCon {
|
|
.featureCon {
|
|
background: #FFFFFF;
|
|
background: #FFFFFF;
|
|
- width: 24%;
|
|
|
|
- height: 206px;
|
|
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 211px;
|
|
display: flex;
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
justify-content: center;
|
|
@@ -203,10 +693,14 @@ export default {
|
|
box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
gap: 18px;
|
|
gap: 18px;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+.featureAll{
|
|
|
|
+ grid-template-columns: repeat(4, 1fr);
|
|
|
|
+ display: grid;
|
|
|
|
+ gap: 20px;
|
|
|
|
+}
|
|
.featureCon2 {
|
|
.featureCon2 {
|
|
background: #FFFFFF;
|
|
background: #FFFFFF;
|
|
- width: 24%;
|
|
|
|
|
|
+ width: 100%;
|
|
height: 94px;
|
|
height: 94px;
|
|
display: flex;
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex-direction: column;
|
|
@@ -221,7 +715,7 @@ export default {
|
|
.featureConTit {
|
|
.featureConTit {
|
|
font-family: PingFang SC;
|
|
font-family: PingFang SC;
|
|
font-weight: 600;
|
|
font-weight: 600;
|
|
- font-size: 20px;
|
|
|
|
|
|
+ font-size: 18px;
|
|
line-height: 22px;
|
|
line-height: 22px;
|
|
color: #000;
|
|
color: #000;
|
|
}
|
|
}
|
|
@@ -235,27 +729,29 @@ export default {
|
|
}
|
|
}
|
|
|
|
|
|
.AppStoreList {
|
|
.AppStoreList {
|
|
- display: flex;
|
|
|
|
|
|
+ display: grid;
|
|
|
|
+ grid-template-columns: repeat(4, 1fr);
|
|
gap: 20px;
|
|
gap: 20px;
|
|
}
|
|
}
|
|
|
|
|
|
.AppStore {
|
|
.AppStore {
|
|
- width: 33%;
|
|
|
|
display: flex;
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
gap: 10px;
|
|
|
|
+ min-height: 171px;
|
|
|
|
+ min-width: 197px;
|
|
}
|
|
}
|
|
|
|
|
|
.AppStoreCon {
|
|
.AppStoreCon {
|
|
- height: 122px;
|
|
|
|
border-radius: 10px;
|
|
border-radius: 10px;
|
|
padding: 17px 17px;
|
|
padding: 17px 17px;
|
|
|
|
+ height: 100%;
|
|
box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
background: #fff;
|
|
background: #fff;
|
|
}
|
|
}
|
|
|
|
|
|
.AppAdd {
|
|
.AppAdd {
|
|
- height: 122px;
|
|
|
|
|
|
+ height: 100%;
|
|
border-radius: 10px;
|
|
border-radius: 10px;
|
|
padding: 17px 17px;
|
|
padding: 17px 17px;
|
|
box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
@@ -271,12 +767,17 @@ export default {
|
|
font-weight: 500;
|
|
font-weight: 500;
|
|
font-size: 16px;
|
|
font-size: 16px;
|
|
margin-bottom: 5px;
|
|
margin-bottom: 5px;
|
|
|
|
+ display: -webkit-box;
|
|
|
|
+ -webkit-line-clamp: 2;
|
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ text-overflow: ellipsis;
|
|
}
|
|
}
|
|
|
|
|
|
.AppStoreConBri {
|
|
.AppStoreConBri {
|
|
font-family: PingFang SC;
|
|
font-family: PingFang SC;
|
|
font-weight: 300;
|
|
font-weight: 300;
|
|
- font-size: 12px;
|
|
|
|
|
|
+ font-size: 14px;
|
|
color: #969BA3;
|
|
color: #969BA3;
|
|
display: -webkit-box;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 2;
|
|
-webkit-line-clamp: 2;
|
|
@@ -290,4 +791,70 @@ export default {
|
|
font-size: 10px;
|
|
font-size: 10px;
|
|
color: #969BA3;
|
|
color: #969BA3;
|
|
}
|
|
}
|
|
|
|
+.appItem {
|
|
|
|
+ height: 100px;
|
|
|
|
+ background-color: white;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ border: solid 1px #f3f4f6;
|
|
|
|
+ padding: 10px;
|
|
|
|
+ border-radius: 8px;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ transition: 0.3s;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.appActive {
|
|
|
|
+ border-color: #409eff;
|
|
|
|
+ box-shadow: 0px 6px 30px 5px #00000015;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.appItem:hover {
|
|
|
|
+ box-shadow: 0px 6px 30px 5px #00000015;
|
|
|
|
+}
|
|
|
|
+.ai_left {
|
|
|
|
+ width: 80px;
|
|
|
|
+ height: 80px;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ padding: 10px;
|
|
|
|
+ margin-right: 10px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.ai_right {
|
|
|
|
+ width: calc(100% - 80px - 10px);
|
|
|
|
+ position: relative;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.ai_right > div {
|
|
|
|
+ max-width: calc(100% - 50px);
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ white-space: nowrap;
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ color: #000;
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
+}
|
|
|
|
+.ai_right > span {
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ color: #00000099;
|
|
|
|
+ display: -webkit-box;
|
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
|
+ -webkit-line-clamp: 2;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
+}
|
|
|
|
+.Fedialog >>> .el-dialog{
|
|
|
|
+ width: 60% !important;
|
|
|
|
+ min-width: 1000px;
|
|
|
|
+}
|
|
|
|
+.Fedialog >>> .el-dialog__header {
|
|
|
|
+ padding: 15px 20px;
|
|
|
|
+ background: #454545;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.Fedialog >>> .el-dialog__title {
|
|
|
|
+ color: #fff;
|
|
|
|
+}
|
|
</style>
|
|
</style>
|