فهرست منبع

校区特色更改

11wqe1 1 ماه پیش
والد
کامیت
108c1c1927
2فایلهای تغییر یافته به همراه1022 افزوده شده و 836 حذف شده
  1. 1012 817
      src/views/kanBan/components/AschoolFeature.vue
  2. 10 19
      src/views/kanBan/components/addCampusDialog.vue

+ 1012 - 817
src/views/kanBan/components/AschoolFeature.vue

@@ -1,912 +1,1107 @@
 <template>
-    <div style="display: flex;flex-direction: column;gap: 20px;height: 100%;">
-
-        <div class="top">
-            <div class="topTit">
-                <div>
-                    <div>集团简介</div>
-                    <div style="height: 4px;background-color: #0663FE;width: 2rem;margin-top: 6px;"></div>
-                </div>
-                <div>
-                    <img v-if="userinfo.role == 1 && userinfo.type == 1" class="topTitEdit" @click="editregion(0)"
-                        src="../../../assets/img/bianji.svg" alt="">
-                </div>
-            </div>
-            <div class="Topbri">
-                {{ fromL.admin.CampusF ? fromL.admin.CampusF.GroupBri : '' }}
-            </div>
-        </div>
-
-        <div class="feature">
-            <div class="topTit">
-                <div>
-                    <div>办学特色</div>
-                    <div style="height: 4px;background-color: #0663FE;width: 2rem;margin-top: 6px;"></div>
-                </div>
-                <div>
-                    <img v-if="userinfo.role == 1 && userinfo.type == 1" class="topTitEdit" @click="editregion(1)"
-                        src="../../../assets/img/bianji.svg" alt="">
-                </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 class="feature">
-            <div class="topTit">
-                <div>
-                    <div>师资力量</div>
-                    <div style="height: 4px;background-color: #0663FE;width: 2rem;margin-top: 6px;"></div>
-                </div>
-                <div>
-                    <img v-if="userinfo.role == 1 && userinfo.type == 1" class="topTitEdit" @click="editregion(2)"
-                        src="../../../assets/img/bianji.svg" alt="">
-                </div>
-            </div>
-            <div class="Topbri">
-                <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 class="featureAll">
-                <div class="featureCon2" v-for="(i, index) in teaData" :key="index">
-                    <div class="featureConTit2">{{ i.bri }}</div>
-                    <div class="Topbri">{{ i.name }}</div>
-                </div>
-            </div>
-        </div>
-
-        <div class="feature">
-            <div class="topTit">
-                <div>
-                    <div>特色应用</div>
-                    <div style="height: 4px;background-color: #0663FE;width: 2rem;margin-top: 6px;"></div>
-                </div>
-                <div>
-                    <img v-if="userinfo.role == 1 && userinfo.type == 1" class="topTitEdit" @click="editregion(4)"
-                        src="../../../assets/img/bianji.svg" alt="">
-                </div>
-            </div>
-
-            <div class="AppStoreList">
-                <template v-if="fromL.admin.CampusF">
-                    <div class="AppStore" v-for="(i, index) in 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>
-                </template>
-
-
-                <div class="AppStore"
-                    v-if="userinfo.role == 1 && userinfo.type == 1 && fromL.admin.CampusF && CampusF.appList.length < 8"
-                    @click="editregion(3)">
-                    <!-- <div style="height: 24px;"></div> -->
-                    <div class="AppAdd">
-                        <img src="../../../assets/img/add.svg" alt="">
-                    </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 appList" :key="item.id"
-                        :class="{ appActive: selectedItem === item }" @click="toggleSelection(item)">
-                        <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>
-            <div class="ea_appList" v-if="isBtn === 4">
-                <el-table :data="CampusF.appList" v-if="isBtn === 4" 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.setIcon ? scope.row.setIcon : scope.row.json.icon" alt="">
-                        </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, 2)" style="
-                                color: #308fff;
-                                background: none;
-                                border: none;
-                                cursor: pointer;
-                                margin-left: 25px;
-                            ">
-                                修改
-                            </button>
-                            <button v-if="fromL.admin.CampusF.appList.length > 1" @click="delFe(scope.$index, 2)" style="
-                                color: red;
-                                background: none;
-                                border: none;
-                                cursor: pointer;
-                                margin-left: 25px;
-                            ">
-                                删除
-                            </button>
-                            <!-- 上移按钮 -->
-                            <button @click="moveUp(scope.$index)" :disabled="scope.$index === 0"
-                                style="color: #308fff; background: none; border: none; cursor: pointer; margin-left: 10px;">
-                                上移
-                            </button>
-
-                            <!-- 下移按钮 -->
-                            <button @click="moveDown(scope.$index)"
-                                :disabled="scope.$index === fromL.admin.CampusF.appList.length - 1"
-                                style="color: #308fff; background: none; border: none; cursor: pointer; margin-left: 10px;">
-                                下移
-                            </button>
-                        </template>
-                    </el-table-column>
-                </el-table>
-            </div>
-
-
-            <span slot="footer" class="dialog-footer">
-                <el-button @click="handleClose">取 消</el-button>
-                <el-button v-if="isBtn === 3" @click="getNewApp">确定</el-button>
-                <el-button v-else type="primary" @click="setJson">确 定</el-button>
-
-            </span>
-        </el-dialog>
-
-        <addCampusDialog ref="addCampusDialogRef" @success="addCampusSuccess" />
-
-    </div>
+	<div style="display: flex; flex-direction: column; gap: 20px; height: 100%">
+		<div class="top">
+			<div class="topTit">
+				<div>
+					<div>集团简介</div>
+					<div
+						style="
+							height: 4px;
+							background-color: #0663fe;
+							width: 2rem;
+							margin-top: 6px;
+						"
+					></div>
+				</div>
+				<div>
+					<img
+						v-if="userinfo.role == 1 && userinfo.type == 1"
+						class="topTitEdit"
+						@click="editregion(0)"
+						src="../../../assets/img/bianji.svg"
+						alt=""
+					/>
+				</div>
+			</div>
+			<div class="Topbri">
+				{{ fromL.admin.CampusF ? fromL.admin.CampusF.GroupBri : "" }}
+			</div>
+		</div>
+
+		<div class="feature">
+			<div class="topTit">
+				<div>
+					<div>办学特色</div>
+					<div
+						style="
+							height: 4px;
+							background-color: #0663fe;
+							width: 2rem;
+							margin-top: 6px;
+						"
+					></div>
+				</div>
+				<div>
+					<img
+						v-if="userinfo.role == 1 && userinfo.type == 1"
+						class="topTitEdit"
+						@click="editregion(1)"
+						src="../../../assets/img/bianji.svg"
+						alt=""
+					/>
+				</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 class="feature">
+			<div class="topTit">
+				<div>
+					<div>师资力量</div>
+					<div
+						style="
+							height: 4px;
+							background-color: #0663fe;
+							width: 2rem;
+							margin-top: 6px;
+						"
+					></div>
+				</div>
+				<div>
+					<img
+						v-if="userinfo.role == 1 && userinfo.type == 1"
+						class="topTitEdit"
+						@click="editregion(2)"
+						src="../../../assets/img/bianji.svg"
+						alt=""
+					/>
+				</div>
+			</div>
+			<div class="Topbri">
+				<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 class="featureAll">
+				<div class="featureCon2" v-for="(i, index) in teaData" :key="index">
+					<div class="featureConTit2">{{ i.bri }}</div>
+					<div class="Topbri">{{ i.name }}</div>
+				</div>
+			</div>
+		</div>
+
+		<div class="feature">
+			<div class="topTit">
+				<div>
+					<div>特色应用</div>
+					<div
+						style="
+							height: 4px;
+							background-color: #0663fe;
+							width: 2rem;
+							margin-top: 6px;
+						"
+					></div>
+				</div>
+				<div>
+					<img
+						v-if="userinfo.role == 1 && userinfo.type == 1"
+						class="topTitEdit"
+						@click="editregion(4)"
+						src="../../../assets/img/bianji.svg"
+						alt=""
+					/>
+				</div>
+			</div>
+
+			<div class="AppStoreList">
+				<template v-if="fromL.admin.CampusF">
+					<div
+						class="AppStore"
+						v-for="(i, index) in CampusF.appList"
+						:key="index"
+                        @click="openNewWindow(i)"
+					>
+						<!-- <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>
+				</template>
+
+				<div
+					class="AppStore"
+					v-if="userinfo.role == 1 && userinfo.type == 1"
+					@click="editregion(3)"
+				>
+					<!-- <div style="height: 24px;"></div> -->
+					<div class="AppAdd">
+						<img src="../../../assets/img/add.svg" alt="" />
+					</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="addCon(0)"
+							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="addCon(1)"
+								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 in allApp(appList)"
+						:key="item.id"
+						:class="{ appActive: isSel(item) }"
+						@click="toggleSelection(item)"
+					>
+						<div class="ai_left">
+							<el-image
+								style="width: 100%; height: 100%; cursor: pointer"
+								:src="item.setIcon ? item.setIcon : item.json.icon"
+								fit="cover"
+							></el-image>
+						</div>
+						<div class="ai_right">
+							<div>{{ item.name }}</div>
+							<div class="ai_r_btn"></div>
+							<span>{{ item.detail }}</span>
+						</div>
+					</div>
+				</div>
+			</div>
+
+			<div class="ea_appList" v-if="isBtn === 4">
+				<el-table
+					:data="CampusF.appList"
+					v-if="isBtn === 4"
+					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.setIcon ? scope.row.setIcon : scope.row.json.icon
+								"
+								alt=""
+							/>
+						</template>
+					</el-table-column>
+
+					<el-table-column label="icon" min-width="200" show-overflow-tooltip>
+						<template slot-scope="scope">
+							{{ scope.row.name }}
+						</template>
+					</el-table-column>
+					<el-table-column label="icon" min-width="200" show-overflow-tooltip>
+						<template slot-scope="scope">
+							{{ scope.row.detail }}
+						</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, 2)"
+								style="
+									color: #308fff;
+									background: none;
+									border: none;
+									cursor: pointer;
+									margin-left: 25px;
+								"
+							>
+								修改
+							</button>
+							<button
+								v-if="fromL.admin.CampusF.appList.length > 1"
+								@click="delFe(scope.$index, 2)"
+								style="
+									color: red;
+									background: none;
+									border: none;
+									cursor: pointer;
+									margin-left: 25px;
+								"
+							>
+								删除
+							</button>
+
+							<!-- 上移按钮 -->
+							<button
+								v-if="scope.$index != 0"
+								@click="moveUp(scope.$index)"
+								style="
+									color: #308fff;
+									background: none;
+									border: none;
+									cursor: pointer;
+									margin-left: 10px;
+								"
+							>
+								上移
+							</button>
+
+							<!-- 下移按钮 -->
+							<button
+								v-if="scope.$index != CampusF.appList.length - 1"
+								@click="moveDown(scope.$index)"
+								style="
+									color: #308fff;
+									background: none;
+									border: none;
+									cursor: pointer;
+									margin-left: 10px;
+								"
+							>
+								下移
+							</button>
+						</template>
+					</el-table-column>
+				</el-table>
+			</div>
+
+			<span slot="footer" class="dialog-footer">
+				<el-button @click="handleClose">取 消</el-button>
+				<!-- 添加特色应用按钮 -->
+				<el-button v-if="isBtn === 3" type="primary" @click="getNewApp"
+					>确定</el-button
+				>
+				<el-button v-else type="primary" @click="setJson">确 定</el-button>
+			</span>
+		</el-dialog>
+
+		<addCampusDialog ref="addCampusDialogRef" @success="addCampusSuccess" />
+	</div>
 </template>
 
 <script>
-import { mapGetters } from 'vuex';
-import { API_CONFIG } from '../../../common/apiConfig.js';
+import { mapGetters } from "vuex";
+import { API_CONFIG } from "../../../common/apiConfig.js";
 import addCampusDialog from "./addCampusDialog";
-import { myMixin } from "@/mixins/mixin.js"
+import { myMixin } from "@/mixins/mixin.js";
 
-// import axios from '@/common/axios.config'; // 引入 axios 配置实例
-// import store from '../../../store'
+import axios from "@/common/axios.config"; // 引入 axios 配置实例
+import store from "../../../store";
 
 export default {
-    mixins: [myMixin],
-
-    components: {
-        addCampusDialog
-    },
-    data() {
-        return {
-            featureApp: [],
-            // 判断弹框是添加还是编辑
-            editTtype: 0,
-            // 添加与编辑弹框显示
-            editVisible: false,
-
-            loading: false,
-
-            // 判断点击的哪个部分的编辑按钮 
-            isBtn: -1,
-
-            // 所有应用列表
-            appList: [],
-
-            // 页面校区特色数据
-            CampusF: [],
-
-            selectedItem: "",
-
-            // 修改校区特色信息
-            CampusData: '',
-            CampusType: 0,
-            // 0 办学特色 1 师资力量
-            CampusNum: 0,
-        }
-    },
-    computed: {
-        ...mapGetters(['fromL', 'userinfo']),
-        featureList() {
-            if (this.fromL.admin.CampusF) {
-                return this.fromL.admin.CampusF.feature; // 从 Vuex 的 fromL 中获取 featureList
-            }
-            else {
-                return []
-            }
-        },
-        teaData() {
-            if (this.fromL.admin.CampusF) {
-                return this.fromL.admin.CampusF.teacherN.list; // 从 Vuex 的 fromL 中获取 teaData
-            } else {
-                return []
-            }
-        },
-    },
-    methods: {
-
-        // 点击区块编辑
-        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))
-            }
-
-        },
-        // 上移
-        moveUp(index) {
-            if (index > 0) {
-                const list = this.CampusF.appList;
-                const temp = list[index];
-                this.$set(list, index, list[index - 1]);
-                this.$set(list, index - 1, temp);
-                this.$message.success("上移成功");
-            }
-        },
-
-        // 下移
-        moveDown(index) {
-            const list = this.CampusF.appList;
-            if (index < list.length - 1) {
-                const temp = list[index];
-                this.$set(list, index, list[index + 1]);
-                this.$set(list, index + 1, temp);
-                this.$message.success("下移成功");
-            }
-        },
-        // 添加办学特色
-        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 师资力量 2 特色应用
-        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 if (this.CampusType == 1) {
-                this.CampusF.teacherN.list.splice(this.CampusNum, 1, val.item)
-            } else {
-                // val.item.setIcon = val.item.icon;
-
-
-                this.CampusF.appList.splice(this.CampusNum, 1, val.item)
-
-            }
-        },
-        // 删除办学特色
-        delFe(index, type) {
+	mixins: [myMixin],
+
+	components: {
+		addCampusDialog,
+	},
+	data() {
+		return {
+			featureApp: [],
+			// 判断弹框是添加还是编辑
+			editTtype: 0,
+			// 添加与编辑弹框显示
+			editVisible: false,
+
+			loading: false,
+
+			// 判断点击的哪个部分的编辑按钮
+			isBtn: -1,
+
+			// 所有应用列表
+			appList: [],
+
+			// 页面校区特色数据
+			CampusF: [],
+
+			// 储存选择特色应用
+			selectedItem: [],
+
+			// 修改校区特色信息
+			CampusData: "",
+			CampusType: 0,
+			// 0 办学特色 1 师资力量
+			CampusNum: 0,
+		};
+	},
+	computed: {
+		...mapGetters(["fromL", "userinfo"]),
+		featureList() {
+			if (this.fromL.admin.CampusF) {
+				return this.fromL.admin.CampusF.feature; // 从 Vuex 的 fromL 中获取 featureList
+			} else {
+				return [];
+			}
+		},
+		teaData() {
+			if (this.fromL.admin.CampusF) {
+				return this.fromL.admin.CampusF.teacherN.list; // 从 Vuex 的 fromL 中获取 teaData
+			} else {
+				return [];
+			}
+		},
+		allApp() {
+			return function (val) {
+				const difference = val.filter(
+					(item1) =>
+						!this.CampusF.appList.some((item2) => item1.id === item2.id)
+				);
+				return difference;
+			};
+		},
+		isSel() {
+			return function (val) {
+				let res5 = this.selectedItem.some(function (item) {
+					return item.id == val.id;
+				});
+				return res5;
+			};
+		},
+	},
+	methods: {
+		// 点击区块编辑
+		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));
+			}
+		},
+		// 上移
+		moveUp(index) {
+			if (index > 0) {
+				const list = this.CampusF.appList;
+				const temp = list[index];
+				this.$set(list, index, list[index - 1]);
+				this.$set(list, index - 1, temp);
+			}
+		},
+
+		// 下移
+		moveDown(index) {
+			const list = this.CampusF.appList;
+			if (index < list.length - 1) {
+				const temp = list[index];
+				this.$set(list, index, list[index + 1]);
+				this.$set(list, index + 1, temp);
+			}
+		},
+		//  0 办学特色 1 师资力量
+		addCon(type) {
+			this.CampusType = type;
+
+			// this.CampusF.feature.push({bri:'',icon:'',name:''})
             if (type == 0) {
-                this.CampusF.feature.splice(index, 1)
-            } else if (type == 1) {
-                this.CampusF.teacherN.list.splice(index, 1)
-            } else {
-                this.CampusF.appList.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;
-                        console.log('_list', _list);
-
-                        // this.loading = false;
-                        resolve(_list);
-                    })
-                    .catch((err) => {
-                        console.log(err);
-                        // this.loading = false;
-                        this.$message.error("获取应用数据失败");
-                        // this.close();
-                    });
-            });
-        },
-        toggleSelection(item) {
-            if (this.selectedItem === item) {
-                this.selectedItem = null; // 取消选中
+                this.CampusNum = this.CampusF.feature.length;
+                this.$refs.addCampusDialogRef.open({ bri: "", icon: "", name: "" }, type);
             } else {
-                this.selectedItem = item; // 设置为选中
-            }
-        },
-
-        // 添加选中的应用
-        getNewApp() {
-            if (!this.selectedItem) {
-                this.$message.warning("请先选择一个应用!");
-                return;
-            }
-
-            const exists = this.CampusF.appList.some(app => app.id === this.selectedItem.id);
-            if (exists) {
-                this.$message.warning("该应用已存在于列表中!");
-                return;
+                this.CampusNum = this.CampusF.teacherN.list.length;
+                this.$refs.addCampusDialogRef.open({ bri: "", name: "" }, 1);
             }
-
-            this.CampusF.appList.push(this.selectedItem);
-            this.$message.success("成功添加到列表!");
-
-            this.selectedItem = null; // 清空选中状态
-            this.editVisible = false;
-            // this.setJson();
+		},
+		// // 添加师资力量
+		// add2() {
+		// 	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 师资力量 2 特色应用
+		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 if (this.CampusType == 1) {
+				this.CampusF.teacherN.list.splice(this.CampusNum, 1, val.item);
+			} else {
+				this.CampusF.appList.splice(this.CampusNum, 1, val.item);
+			}
+		},
+		// 删除办学特色
+		delFe(index, type) {
+			if (type == 0) {
+				this.CampusF.feature.splice(index, 1);
+			} else if (type == 1) {
+				this.CampusF.teacherN.list.splice(index, 1);
+			} else {
+				this.CampusF.appList.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;
+						// console.log('_list', _list);
+
+						// this.loading = false;
+						resolve(_list);
+					})
+					.catch((err) => {
+						console.log(err);
+						// this.loading = false;
+						this.$message.error("获取应用数据失败");
+						// this.close();
+					});
+			});
+		},
+		toggleSelection(item) {
+			const index = this.selectedItem.findIndex((user) => user.id === item.id);
+
+			if (index == -1) {
+				this.selectedItem.push(item);
+			} else {
+				this.selectedItem.splice(index, 1);
+			}
+		},
+
+		// 添加选中的应用
+		getNewApp() {
+			if (this.selectedItem.length == 0) {
+				this.$message.warning("请先选择一个应用!");
+				return;
+			}
+
+			this.CampusF.appList = [...this.CampusF.appList, ...this.selectedItem];
+
+			this.selectedItem = []; // 清空选中状态
+			this.editVisible = false;
+			this.setJson();
+		},
+        openNewWindow(val) {
+            console.log(val);
+            this.addOp3('1', "", {id :val.id,name:val.name ,type:this.prefixL + "appstoreOpen" }, "success")
+
+            // // 基本用法:打开指定 URL
+            window.open(val.url, "_blank");
         },
-        // 提交
-        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 }
-                })
-                : [];
-
-            console.log("1111", _form.admin.CampusF.appList);
-            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() {
-        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: [],
-            }
-        }
-        console.log('CampusF', this.CampusF.appList);
-    }
-
-
-}
+		// 提交
+		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 = JSON.parse(JSON.stringify(this.CampusF));
+
+			_form.admin.CampusF.appList = _form.admin.CampusF.appList.length
+				? _form.admin.CampusF.appList.map((i) => {return { id: i.id, setIcon: i.setIcon }}) : [];
+
+			console.log("_form", _form);
+			let params = [
+				{
+					functionName: "update_orgOroid_json_byId",
+					id: this.userinfo.organizeid,
+					ujson: JSON.stringify(_form),
+					type: "school",
+				},
+			];
+			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() {
+		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: [],
+			};
+		}
+		console.log("CampusF", this.CampusF.appList);
+	},
+};
 </script>
 
 <style scoped>
 .top {
-    height: 159px;
-    padding: 36px 27px;
-    box-sizing: border-box;
-    display: flex;
-    flex-direction: column;
-    background: #fff;
-    border-radius: 12px;
-    justify-content: space-between;
+	height: 159px;
+	padding: 36px 27px;
+	box-sizing: border-box;
+	display: flex;
+	flex-direction: column;
+	background: #fff;
+	border-radius: 12px;
+	justify-content: space-between;
 }
 
 .topTit {
-    font-family: PingFang SC;
-    font-weight: 600;
-    font-size: 18px;
-    line-height: 22px;
-    color: #0663FE;
-    display: flex;
-    height: 36px;
-    justify-content: space-between;
+	font-family: PingFang SC;
+	font-weight: 600;
+	font-size: 18px;
+	line-height: 22px;
+	color: #0663fe;
+	display: flex;
+	height: 36px;
+	justify-content: space-between;
 }
 
 .topTit .topTitEdit {
-    cursor: pointer;
+	cursor: pointer;
 }
 
 .Topbri {
-    font-family: PingFang SC;
-    font-weight: 400;
-    font-size: 14px;
-    line-height: 22px;
-    color: #000;
+	font-family: PingFang SC;
+	font-weight: 400;
+	font-size: 14px;
+	line-height: 22px;
+	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;
+	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 {
-    width: 100%;
-    padding: 36px 27px;
-    border-radius: 12px;
-    box-sizing: border-box;
-    background: #EEEEEE;
-    display: flex;
-    flex-direction: column;
-    gap: 20px;
-    justify-content: space-between;
+	width: 100%;
+	padding: 36px 27px;
+	border-radius: 12px;
+	box-sizing: border-box;
+	background: #eeeeee;
+	display: flex;
+	flex-direction: column;
+	gap: 20px;
+	justify-content: space-between;
 }
 
 .featureCon {
-    background: #FFFFFF;
-    width: 100%;
-    height: 211px;
-    display: flex;
-    flex-direction: column;
-    justify-content: center;
-    border-radius: 12px;
-    padding: 40px 20px;
-    align-items: center;
-    box-sizing: border-box;
-    gap: 18px;
+	background: #ffffff;
+	width: 100%;
+	height: 211px;
+	display: flex;
+	flex-direction: column;
+	justify-content: center;
+	border-radius: 12px;
+	padding: 40px 20px;
+	align-items: center;
+	box-sizing: border-box;
+	gap: 18px;
 }
 
 .featureAll {
-    grid-template-columns: repeat(4, 1fr);
-    display: grid;
-    gap: 20px;
+	grid-template-columns: repeat(4, 1fr);
+	display: grid;
+	gap: 20px;
 }
 
 .featureCon2 {
-    background: #FFFFFF;
-    width: 100%;
-    height: 94px;
-    display: flex;
-    flex-direction: column;
-    justify-content: center;
-    border-radius: 12px;
-    padding: 40px 20px;
-    align-items: center;
-    box-sizing: border-box;
-    gap: 10px;
+	background: #ffffff;
+	width: 100%;
+	height: 94px;
+	display: flex;
+	flex-direction: column;
+	justify-content: center;
+	border-radius: 12px;
+	padding: 40px 20px;
+	align-items: center;
+	box-sizing: border-box;
+	gap: 10px;
 }
 
 .featureConTit {
-    font-family: PingFang SC;
-    font-weight: 600;
-    font-size: 18px;
-    line-height: 22px;
-    color: #000;
+	font-family: PingFang SC;
+	font-weight: 600;
+	font-size: 18px;
+	line-height: 22px;
+	color: #000;
 }
 
 .featureConTit2 {
-    font-family: PingFang SC;
-    font-weight: 600;
-    font-size: 20px;
-    line-height: 22px;
-    color: #0663FE;
+	font-family: PingFang SC;
+	font-weight: 600;
+	font-size: 20px;
+	line-height: 22px;
+	color: #0663fe;
 }
 
 .AppStoreList {
-    display: grid;
-    grid-template-columns: repeat(4, 1fr);
-    gap: 20px;
+	display: grid;
+	grid-template-columns: repeat(auto-fit, minmax(20%, 1fr));
+	gap: 20px;
 }
 
 .AppStore {
-    display: flex;
-    flex-direction: column;
-    gap: 10px;
-    min-height: 171px;
-    min-width: 197px;
+	display: flex;
+	flex-direction: column;
+	gap: 10px;
+	min-height: 171px;
+	min-width: 100px;
+    cursor: pointer;
 }
 
 .AppStoreCon {
-    border-radius: 10px;
-    padding: 17px 17px;
-    height: 100%;
-    box-sizing: border-box;
-    background: #fff;
+	border-radius: 10px;
+	padding: 17px 17px;
+	height: 100%;
+	box-sizing: border-box;
+	background: #fff;
 }
 
 .AppAdd {
-    height: 100%;
-    border-radius: 10px;
-    padding: 17px 17px;
-    box-sizing: border-box;
-    border: 1px dashed #000000;
-    background: #E5E5E5;
-    display: flex;
-    justify-content: center;
-    align-items: center;
+	height: 100%;
+	border-radius: 10px;
+	padding: 17px 17px;
+	box-sizing: border-box;
+	border: 1px dashed #000000;
+	background: #e5e5e5;
+	display: flex;
+	justify-content: center;
+	align-items: center;
 }
 
 .AppStoreConTit {
-    font-family: PingFang SC;
-    font-weight: 500;
-    font-size: 16px;
-    margin-bottom: 5px;
-    display: -webkit-box;
-    -webkit-line-clamp: 2;
-    -webkit-box-orient: vertical;
-    overflow: hidden;
-    text-overflow: ellipsis;
+	font-family: PingFang SC;
+	font-weight: 500;
+	font-size: 16px;
+	margin-bottom: 5px;
+	display: -webkit-box;
+	-webkit-line-clamp: 2;
+	-webkit-box-orient: vertical;
+	overflow: hidden;
+	text-overflow: ellipsis;
 }
 
 .AppStoreConBri {
-    font-family: PingFang SC;
-    font-weight: 300;
-    font-size: 14px;
-    color: #969BA3;
-    display: -webkit-box;
-    -webkit-line-clamp: 2;
-    -webkit-box-orient: vertical;
-    overflow: hidden;
-    text-overflow: ellipsis;
+	font-family: PingFang SC;
+	font-weight: 300;
+	font-size: 14px;
+	color: #969ba3;
+	display: -webkit-box;
+	-webkit-line-clamp: 2;
+	-webkit-box-orient: vertical;
+	overflow: hidden;
+	text-overflow: ellipsis;
 }
 
 .AppStoreBri {
-    font-family: PingFang SC;
-    font-size: 10px;
-    color: #969BA3;
+	font-family: PingFang SC;
+	font-size: 10px;
+	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;
+	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;
+	border-color: #409eff;
+	box-shadow: 0px 6px 30px 5px #00000015;
 }
 
 .appItem:hover {
-    box-shadow: 0px 6px 30px 5px #00000015;
+	box-shadow: 0px 6px 30px 5px #00000015;
 }
 
 .ai_left {
-    width: 80px;
-    height: 80px;
-    box-sizing: border-box;
-    padding: 10px;
-    margin-right: 10px;
+	width: 80px;
+	height: 80px;
+	box-sizing: border-box;
+	padding: 10px;
+	margin-right: 10px;
 }
 
 .ai_right {
-    width: calc(100% - 80px - 10px);
-    position: relative;
+	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 > 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;
+.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;
-    overflow: hidden;
-    margin-top: 10vh !important
+.Fedialog >>> .el-dialog {
+	width: 60% !important;
+	min-width: 1000px;
+	overflow: hidden;
+	margin-top: 10vh !important;
 }
 
-.Fedialog>>>.el-dialog__header {
-    padding: 15px 20px;
-    background: #454545;
+.Fedialog >>> .el-dialog__header {
+	padding: 15px 20px;
+	background: #454545;
 }
 
-.Fedialog>>>.el-dialog__body {
-    max-height: 70vh;
-    /* 内容区域最大高度为视口高度的 70% */
-    overflow-y: auto;
-    /* 当内容超出时显示滚动条 */
-    padding: 20px;
-    /* 添加内边距 */
-    box-sizing: border-box;
-    /* 确保 padding 不影响宽度计算 */
+.Fedialog >>> .el-dialog__body {
+	max-height: 70vh;
+	/* 内容区域最大高度为视口高度的 70% */
+	overflow-y: auto;
+	/* 当内容超出时显示滚动条 */
+	padding: 20px;
+	/* 添加内边距 */
+	box-sizing: border-box;
+	/* 确保 padding 不影响宽度计算 */
 }
 
-.Fedialog>>>.el-dialog__title {
-    color: #fff;
+.Fedialog >>> .el-dialog__title {
+	color: #fff;
 }
-</style>
+</style>

+ 10 - 19
src/views/kanBan/components/addCampusDialog.vue

@@ -65,6 +65,7 @@ export default {
 				icon: "",
 				bri: "",
 			},
+			form2:{},
 			type: null,
 		};
 	},
@@ -83,15 +84,16 @@ export default {
 	},
 	methods: {
 		open(data, type) {
-			this.form = JSON.parse(JSON.stringify(data));
-			console.log('form', this.form);
-
 			this.type = type;
 
 			// 根据 type 处理图片字段
 			if (type === 2) {
+				this.form2 = JSON.parse(JSON.stringify(data));
+
 				// 如果是特色应用,图片在 form.json.icon
-				this.form.icon = this.form.setIcon ?  this.form.setIcon : this.form.json.icon; // 确保 json 存在,避免报错
+				this.form.icon = data.setIcon ?  data.setIcon : data.json.icon; // 确保 json 存在,避免报错
+			}else{
+				this.form = JSON.parse(JSON.stringify(data));
 			}
 			this.show = true;
 		},
@@ -117,14 +119,9 @@ export default {
 				if (!this.form.icon) {
 					return this.$message.error("请完善表单");
 				}
-
-				console.log('!this.form',this.form);
-				
-				// 将 form.icon 保存回 form.json.icon
-				// this.form.json = this.form.json || {};
-				// this.form.json.icon = this.form.icon;
-				// console.log('form.json', this.form.json);
-				
+				let data = JSON.parse(JSON.stringify(this.form.icon))
+				this.form2.setIcon = data 
+				this.form = this.form2
 			}
 			this.$emit("success", { item: this.form });
 			this.close()
@@ -134,13 +131,7 @@ export default {
 			console.log("addUrlIcon", _url);
 
 			if (_url) {
-				if (this.type === 2) {
-					this.form.setIcon = _url;
-				}else {
-					this.form.icon = _url;
-				}
-				
-
+				this.form.icon = _url;	
 			} else {
 				return console.log("无图片");
 			}