|
@@ -158,41 +158,58 @@
|
|
|
<el-radio :label="2">课程</el-radio>
|
|
<el-radio :label="2">课程</el-radio>
|
|
|
<el-radio :label="4">AI触达</el-radio>
|
|
<el-radio :label="4">AI触达</el-radio>
|
|
|
<el-radio :label="5">打标签</el-radio>
|
|
<el-radio :label="5">打标签</el-radio>
|
|
|
|
|
+ <el-radio :label="20">直播间</el-radio>
|
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="课程" v-if="content.type == 2 && form.sendType != 5" required>
|
|
|
|
|
- <el-select :disabled="formType == 3 || form.sendType == 11 || !roles.includes('edit_sop_temp_content')" v-model="content.courseId"
|
|
|
|
|
- placeholder="请选择课程" style=" margin-right: 10px;" size="mini" remote
|
|
|
|
|
- filterable
|
|
|
|
|
- @change="courseChangeUpdate(content,index,contentIndex)">
|
|
|
|
|
- <el-option
|
|
|
|
|
- v-for="dict in courseList"
|
|
|
|
|
- :key="dict.dictValue"
|
|
|
|
|
- :label="dict.dictLabel"
|
|
|
|
|
- :value="parseInt(dict.dictValue)"
|
|
|
|
|
- />
|
|
|
|
|
- </el-select>
|
|
|
|
|
- <el-select :disabled="formType == 3 || form.sendType == 11 || !roles.includes('edit_sop_temp_content')" v-model="content.videoId"
|
|
|
|
|
- placeholder="请选择小节" size="mini" style=" margin-right: 10px;" remote
|
|
|
|
|
- filterable
|
|
|
|
|
- @change="videoIdChange(content,index,contentIndex)">
|
|
|
|
|
- <el-option
|
|
|
|
|
- v-for="dict in videoList[contentIndex]"
|
|
|
|
|
- :key="dict.dictValue"
|
|
|
|
|
- :label="dict.dictLabel"
|
|
|
|
|
- :value="parseInt(dict.dictValue)"
|
|
|
|
|
- />
|
|
|
|
|
- </el-select>
|
|
|
|
|
- <el-select :disabled="formType == 3 || !roles.includes('edit_sop_temp_content')" v-model="content.courseType"
|
|
|
|
|
- placeholder="请选择消息类型" size="mini"
|
|
|
|
|
- style=" margin-right: 10px;" v-if="content.type != 4 ">
|
|
|
|
|
- <el-option
|
|
|
|
|
- v-for="dict in sysFsSopWatchStatus"
|
|
|
|
|
- :key="dict.dictValue"
|
|
|
|
|
- :label="dict.dictLabel"
|
|
|
|
|
- :value="Number(dict.dictValue)"
|
|
|
|
|
- />
|
|
|
|
|
- </el-select>
|
|
|
|
|
|
|
+ <el-form-item label="直播间" v-if="content.type == 20">
|
|
|
|
|
+ <el-select v-model="content.liveId"
|
|
|
|
|
+ filterable
|
|
|
|
|
+ placeholder="请选择直播间" size="mini"
|
|
|
|
|
+ @change="liveChangeContent(content)" >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="dict in liveList"
|
|
|
|
|
+ :key="dict.liveId"
|
|
|
|
|
+ :label="dict.liveName"
|
|
|
|
|
+ :value="dict.liveId"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="课程选择" v-if="content.type == 2 && form.sendType != 5" required class="course-select-item">
|
|
|
|
|
+ <div class="course-select-row">
|
|
|
|
|
+ <el-select :disabled="formType == 3 || form.sendType == 11 || !roles.includes('edit_sop_temp_content')" v-model="content.courseId"
|
|
|
|
|
+ placeholder="请选择课程" size="small" remote
|
|
|
|
|
+ filterable
|
|
|
|
|
+ @change="courseChangeUpdate(content,index,contentIndex)">
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="dict in courseList"
|
|
|
|
|
+ :key="dict.dictValue"
|
|
|
|
|
+ :label="dict.dictLabel"
|
|
|
|
|
+ :value="parseInt(dict.dictValue)"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ <el-select :disabled="formType == 3 || form.sendType == 11 || !roles.includes('edit_sop_temp_content')" v-model="content.videoId"
|
|
|
|
|
+ placeholder="请选择小节" size="small" remote
|
|
|
|
|
+ filterable
|
|
|
|
|
+ @change="videoIdChange(content,index,contentIndex)">
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="dict in videoList[contentIndex]"
|
|
|
|
|
+ :key="dict.dictValue"
|
|
|
|
|
+ :label="dict.dictLabel"
|
|
|
|
|
+ :value="parseInt(dict.dictValue)"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="course-type-row" v-if="content.type != 4">
|
|
|
|
|
+ <el-select :disabled="formType == 3 || !roles.includes('edit_sop_temp_content')" v-model="content.courseType"
|
|
|
|
|
+ placeholder="请选择消息类型" size="small">
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="dict in sysFsSopWatchStatus"
|
|
|
|
|
+ :key="dict.dictValue"
|
|
|
|
|
+ :label="dict.dictLabel"
|
|
|
|
|
+ :value="Number(dict.dictValue)"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </div>
|
|
|
|
|
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="Ai触达" v-if="content.type == 4 ">
|
|
<el-form-item label="Ai触达" v-if="content.type == 4 ">
|
|
@@ -418,12 +435,17 @@
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-card>
|
|
</el-card>
|
|
|
</div>
|
|
</div>
|
|
|
- <div v-if="setList.contentType == 12">
|
|
|
|
|
- <!-- <div >-->
|
|
|
|
|
- <el-card class="box-card">
|
|
|
|
|
- <el-form-item label="直播间" >
|
|
|
|
|
|
|
+ <div v-if="setList.contentType == 12 || setList.contentType == 18 || setList.contentType == 19 || setList.contentType == 24">
|
|
|
|
|
+ <el-card class="box-card miniprogram-card">
|
|
|
|
|
+ <div slot="header" class="card-header-mini">
|
|
|
|
|
+ <i class="el-icon-video-camera"></i>
|
|
|
|
|
+ <span>直播小程序</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <el-form-item label="直播间" required>
|
|
|
<el-select v-model="setList.liveId"
|
|
<el-select v-model="setList.liveId"
|
|
|
placeholder="请选择直播间" size="mini"
|
|
placeholder="请选择直播间" size="mini"
|
|
|
|
|
+ filterable
|
|
|
|
|
+ :disabled="content.type==20"
|
|
|
@change="liveChange(setList)" >
|
|
@change="liveChange(setList)" >
|
|
|
<el-option
|
|
<el-option
|
|
|
v-for="dict in liveList"
|
|
v-for="dict in liveList"
|
|
@@ -434,15 +456,15 @@
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
|
|
- <el-form-item label="标题" prop="miniprogramTitle">
|
|
|
|
|
- <el-input v-model="setList.miniprogramTitle" placeholder="请输入小程序消息标题,最长为64字节" :rows="2" maxlength="64"
|
|
|
|
|
|
|
+ <el-form-item label="标题" prop="miniprogramTitle" required>
|
|
|
|
|
+ <el-input :disabled="content.type==20" v-model="setList.miniprogramTitle" placeholder="请输入小程序消息标题,最长为64字节" :rows="2" maxlength="64"
|
|
|
type="textarea" @input="checkByteLength(content,setList.contentType,content.isOfficial)" />
|
|
type="textarea" @input="checkByteLength(content,setList.contentType,content.isOfficial)" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="封面" prop="miniprogramPicUrl">
|
|
|
|
|
- <ImageUpload v-model="setList.miniprogramPicUrl" type="image" :num="10" :width="150" :height="150" />
|
|
|
|
|
|
|
+ <el-form-item label="封面" prop="miniprogramPicUrl" required>
|
|
|
|
|
+ <ImageUpload :disabled="content.type==20" v-model="setList.miniprogramPicUrl" type="image" :num="10" :width="150" :height="150" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="appid" prop="miniprogramAppid" v-show="false">
|
|
<el-form-item label="appid" prop="miniprogramAppid" v-show="false">
|
|
|
- <el-input v-model="setList.miniprogramAppid='wx503cf8ab31f83dd4' " disabled />
|
|
|
|
|
|
|
+ <el-input v-model="setList.miniprogramAppid='wxcfd4cd6e2375e42f' " disabled />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="page路径" prop="miniprogramPage" v-show="false" label-width="100px" style="margin-left: -30px">
|
|
<el-form-item label="page路径" prop="miniprogramPage" v-show="false" label-width="100px" style="margin-left: -30px">
|
|
|
<el-input v-model="setList.miniprogramPage" placeholder="小程序消息打开后的路径" disabled />
|
|
<el-input v-model="setList.miniprogramPage" placeholder="小程序消息打开后的路径" disabled />
|
|
@@ -747,6 +769,864 @@
|
|
|
background: rgb(26, 164, 255) !important;
|
|
background: rgb(26, 164, 255) !important;
|
|
|
color: #FFF !important;
|
|
color: #FFF !important;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+/* ===== 页面头部样式 ===== */
|
|
|
|
|
+.sop-temp-container {
|
|
|
|
|
+ padding: 20px;
|
|
|
|
|
+ background: #f5f7fa;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.page-header {
|
|
|
|
|
+ background: linear-gradient(135deg, #1890ff 0%, #0066cc 100%);
|
|
|
|
|
+ padding: 20px 30px;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+ box-shadow: 0 2px 12px rgba(24, 144, 255, 0.15);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.header-title {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.header-title i {
|
|
|
|
|
+ font-size: 20px;
|
|
|
|
|
+ margin-right: 10px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.header-subtitle {
|
|
|
|
|
+ padding-left: 30px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.template-id {
|
|
|
|
|
+ display: inline-block;
|
|
|
|
|
+ background: rgba(255, 255, 255, 0.2);
|
|
|
|
|
+ padding: 4px 12px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ font-family: 'Courier New', monospace;
|
|
|
|
|
+ backdrop-filter: blur(10px);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* ===== 表单内容区样式 ===== */
|
|
|
|
|
+.form-content {
|
|
|
|
|
+ background: #fff;
|
|
|
|
|
+ padding: 20px;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 基本信息卡片 */
|
|
|
|
|
+.info-card {
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+ border: 1px solid #e8e8e8;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.info-card ::v-deep .el-card__header {
|
|
|
|
|
+ padding: 12px 20px;
|
|
|
|
|
+ background: #fafafa;
|
|
|
|
|
+ border-bottom: 1px solid #e8e8e8;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.info-card .card-header {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #333;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.info-card .card-header i {
|
|
|
|
|
+ margin-right: 8px;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ color: #1890ff;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 基本信息项目布局 */
|
|
|
|
|
+.info-items {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
|
+ gap: 16px;
|
|
|
|
|
+ padding: 8px 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.info-item {
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ background: #f8f9fa;
|
|
|
|
|
+ border: 1px solid #ebeef5;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ padding: 8px 16px;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.info-label {
|
|
|
|
|
+ color: #606266;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.info-label::after {
|
|
|
|
|
+ content: ':';
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.info-value {
|
|
|
|
|
+ color: #303133;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.info-item .el-tag {
|
|
|
|
|
+ margin-left: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 规则配置样式 */
|
|
|
|
|
+.rule-form-item {
|
|
|
|
|
+ margin-top: 20px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.rule-form-item ::v-deep .el-form-item__label {
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #333;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.rule-actions {
|
|
|
|
|
+ margin-bottom: 16px;
|
|
|
|
|
+ padding: 12px;
|
|
|
|
|
+ background: #f9f9f9;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ gap: 10px;
|
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.rule-actions .el-button {
|
|
|
|
|
+ margin-left: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 规则标签页样式 */
|
|
|
|
|
+.rule-tabs {
|
|
|
|
|
+ margin-top: 16px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.rule-tabs ::v-deep .el-tabs__header {
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.rule-tabs ::v-deep .el-tabs__item {
|
|
|
|
|
+ height: 42px;
|
|
|
|
|
+ line-height: 42px;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.rule-tabs ::v-deep .el-tabs__item.is-active {
|
|
|
|
|
+ background: #1890ff;
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ border-color: #1890ff;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 红点样式优化 - 未选中状态 */
|
|
|
|
|
+.rule-tabs ::v-deep .el-badge__content.is-dot {
|
|
|
|
|
+ width: 6px;
|
|
|
|
|
+ height: 6px;
|
|
|
|
|
+ top: -3px;
|
|
|
|
|
+ right: -8px;
|
|
|
|
|
+ background-color: #f56c6c;
|
|
|
|
|
+ border: none;
|
|
|
|
|
+ box-shadow: none;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 红点样式优化 - 选中状态 */
|
|
|
|
|
+.rule-tabs ::v-deep .el-tabs__item.is-active .el-badge__content.is-dot {
|
|
|
|
|
+ background-color: #faad14;
|
|
|
|
|
+ border: none;
|
|
|
|
|
+ box-shadow: none;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 标签内容区域 */
|
|
|
|
|
+.tab-content-row {
|
|
|
|
|
+ min-height: 300px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 加载动画优化 */
|
|
|
|
|
+.tab-content-row ::v-deep .el-loading-mask {
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.tab-content-row ::v-deep .el-loading-spinner {
|
|
|
|
|
+ top: 40%;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.tab-content-row ::v-deep .el-loading-spinner .circular {
|
|
|
|
|
+ width: 42px;
|
|
|
|
|
+ height: 42px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.tab-content-row ::v-deep .el-loading-spinner .el-loading-text {
|
|
|
|
|
+ color: #1890ff;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ margin-top: 10px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 天内容卡片 */
|
|
|
|
|
+.day-content-card {
|
|
|
|
|
+ border: 1px solid #e8e8e8;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.day-content-card ::v-deep .el-card__body {
|
|
|
|
|
+ padding: 20px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 内容项卡片 */
|
|
|
|
|
+.content-item-card {
|
|
|
|
|
+ background-color: #fafafa;
|
|
|
|
|
+ padding: 16px;
|
|
|
|
|
+ border: 1px solid #e6e6e6;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ margin-bottom: 16px;
|
|
|
|
|
+ transition: all 0.3s;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.content-item-card:hover {
|
|
|
|
|
+ border-color: #1890ff;
|
|
|
|
|
+ box-shadow: 0 2px 8px rgba(24, 144, 255, 0.1);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 内容类别样式 */
|
|
|
|
|
+.content-type-item {
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.content-type-item ::v-deep .el-form-item__label {
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ line-height: 32px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.content-type-item ::v-deep .el-form-item__content {
|
|
|
|
|
+ line-height: 32px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.content-type-item ::v-deep .el-radio-group {
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
|
+ gap: 8px 20px;
|
|
|
|
|
+ line-height: 32px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.content-type-item ::v-deep .el-radio {
|
|
|
|
|
+ margin-right: 0;
|
|
|
|
|
+ line-height: 32px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 表单优化 */
|
|
|
|
|
+.sop-form ::v-deep .el-form-item {
|
|
|
|
|
+ margin-bottom: 18px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sop-form ::v-deep .el-form-item__label {
|
|
|
|
|
+ color: #606266;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 标签优化 */
|
|
|
|
|
+.sop-form ::v-deep .el-tag {
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ padding: 0 10px;
|
|
|
|
|
+ height: 28px;
|
|
|
|
|
+ line-height: 28px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 输入框优化 */
|
|
|
|
|
+.sop-form ::v-deep .el-input__inner,
|
|
|
|
|
+.sop-form ::v-deep .el-textarea__inner {
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ transition: all 0.3s;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sop-form ::v-deep .el-input__inner:focus,
|
|
|
|
|
+.sop-form ::v-deep .el-textarea__inner:focus {
|
|
|
|
|
+ border-color: #1890ff;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 卡片样式统一 */
|
|
|
|
|
+.sop-form ::v-deep .el-card {
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sop-form ::v-deep .box-card {
|
|
|
|
|
+ margin-top: 12px;
|
|
|
|
|
+ background: #f9f9f9;
|
|
|
|
|
+ border: 1px solid #e8e8e8;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sop-form ::v-deep .box-card .el-card__body {
|
|
|
|
|
+ padding: 16px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 按钮组样式 */
|
|
|
|
|
+.sop-form ::v-deep .el-button-group {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 开关样式优化 */
|
|
|
|
|
+.sop-form ::v-deep .el-switch {
|
|
|
|
|
+ margin-right: 12px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 提示信息样式 */
|
|
|
|
|
+.sop-form ::v-deep .el-form-item__content > div[style*="color: #999"] {
|
|
|
|
|
+ background: #f0f9ff;
|
|
|
|
|
+ padding: 8px 12px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ border-left: 3px solid #1890ff;
|
|
|
|
|
+ margin-top: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sop-form ::v-deep .el-form-item__content > div[style*="color: #999"] i {
|
|
|
|
|
+ color: #1890ff;
|
|
|
|
|
+ margin-right: 6px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* ===== 规则内容优化 ===== */
|
|
|
|
|
+.rule-content-item {
|
|
|
|
|
+ margin-top: 20px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.rule-content-item ::v-deep .el-form-item__label {
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ font-size: 15px;
|
|
|
|
|
+ color: #333;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 内容项卡片头部 */
|
|
|
|
|
+.content-item-header {
|
|
|
|
|
+ background: linear-gradient(135deg, #f5f7fa 0%, #e8eef5 100%);
|
|
|
|
|
+ padding: 12px 16px;
|
|
|
|
|
+ margin: -16px -16px 16px -16px;
|
|
|
|
|
+ border-bottom: 2px solid #1890ff;
|
|
|
|
|
+ border-radius: 6px 6px 0 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.content-item-title {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ color: #333;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.content-item-title i {
|
|
|
|
|
+ margin-right: 6px;
|
|
|
|
|
+ color: #1890ff;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 设置项卡片 */
|
|
|
|
|
+.setting-item-card {
|
|
|
|
|
+ background: #fff;
|
|
|
|
|
+ border: 1px solid #e0e6ed;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ margin-bottom: 16px;
|
|
|
|
|
+ padding: 16px;
|
|
|
|
|
+ transition: all 0.3s;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.setting-item-card:hover {
|
|
|
|
|
+ border-color: #1890ff;
|
|
|
|
|
+ box-shadow: 0 2px 12px rgba(24, 144, 255, 0.12);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.setting-item-header {
|
|
|
|
|
+ margin: -16px -16px 16px -16px;
|
|
|
|
|
+ padding: 10px 16px;
|
|
|
|
|
+ background: #f9fafb;
|
|
|
|
|
+ border-bottom: 1px solid #e8e8e8;
|
|
|
|
|
+ border-radius: 6px 6px 0 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.setting-item-title {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ color: #606266;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.setting-item-title i {
|
|
|
|
|
+ margin-right: 6px;
|
|
|
|
|
+ color: #909399;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.setting-content {
|
|
|
|
|
+ padding-bottom: 12px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 内容表单统一样式 */
|
|
|
|
|
+.content-form ::v-deep .el-form-item__label {
|
|
|
|
|
+ padding-right: 8px;
|
|
|
|
|
+ text-align: right;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 内联表单项 */
|
|
|
|
|
+.inline-form-item {
|
|
|
|
|
+ margin-bottom: 18px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.inline-form-item ::v-deep .el-form-item__content {
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ margin-left: 0 !important;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 开关表单项 */
|
|
|
|
|
+.switch-form-item {
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.switch-form-item ::v-deep .el-form-item__label {
|
|
|
|
|
+ line-height: 32px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.switch-form-item ::v-deep .el-form-item__content {
|
|
|
|
|
+ display: block;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.switch-form-item ::v-deep .el-switch {
|
|
|
|
|
+ vertical-align: middle;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 表单提示信息 */
|
|
|
|
|
+.form-tip-info {
|
|
|
|
|
+ background: #f0f9ff;
|
|
|
|
|
+ color: #666;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ padding: 10px 14px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ border-left: 3px solid #1890ff;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: flex-start;
|
|
|
|
|
+ line-height: 1.6;
|
|
|
|
|
+ margin-top: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.form-tip-info i {
|
|
|
|
|
+ color: #1890ff;
|
|
|
|
|
+ margin-right: 8px;
|
|
|
|
|
+ margin-top: 2px;
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 内容操作按钮 */
|
|
|
|
|
+.content-actions {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ gap: 12px;
|
|
|
|
|
+ margin-top: 12px;
|
|
|
|
|
+ padding: 8px 12px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.content-actions .el-button {
|
|
|
|
|
+ margin-left: 0;
|
|
|
|
|
+ padding: 8px 15px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.content-actions .el-button [class*="el-icon-"] {
|
|
|
|
|
+ margin-right: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 消息类别 Radio 组优化 */
|
|
|
|
|
+.sop-form ::v-deep .el-radio {
|
|
|
|
|
+ margin-right: 16px;
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sop-form ::v-deep .el-radio__label {
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ padding-left: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* Select 下拉框优化 */
|
|
|
|
|
+.sop-form ::v-deep .el-select {
|
|
|
|
|
+ margin-right: 12px;
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sop-form ::v-deep .el-select .el-input__inner {
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 标签输入优化 */
|
|
|
|
|
+.sop-form ::v-deep .el-tag {
|
|
|
|
|
+ margin-right: 8px;
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sop-form ::v-deep .input-new-tag {
|
|
|
|
|
+ margin-right: 8px;
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sop-form ::v-deep .button-new-tag {
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* ===== 小程序、福袋、上传卡片优化 ===== */
|
|
|
|
|
+.miniprogram-card,
|
|
|
|
|
+.luckybag-card,
|
|
|
|
|
+.upload-card {
|
|
|
|
|
+ margin-top: 12px;
|
|
|
|
|
+ border: 1px solid #e8e8e8;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.miniprogram-card ::v-deep .el-card__header,
|
|
|
|
|
+.luckybag-card ::v-deep .el-card__header,
|
|
|
|
|
+.upload-card ::v-deep .el-card__header {
|
|
|
|
|
+ padding: 0;
|
|
|
|
|
+ border-bottom: none;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.miniprogram-card ::v-deep .el-card__body,
|
|
|
|
|
+.luckybag-card ::v-deep .el-card__body,
|
|
|
|
|
+.upload-card ::v-deep .el-card__body {
|
|
|
|
|
+ padding: 16px 20px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.card-header-mini {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ color: #333;
|
|
|
|
|
+ padding: 10px 16px;
|
|
|
|
|
+ background: linear-gradient(135deg, #f9fafb 0%, #f0f4f8 100%);
|
|
|
|
|
+ border-bottom: 1px solid #e8e8e8;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.card-header-mini i {
|
|
|
|
|
+ margin-right: 8px;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ color: #1890ff;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.miniprogram-card .el-form-item,
|
|
|
|
|
+.luckybag-card .el-form-item,
|
|
|
|
|
+.upload-card .el-form-item {
|
|
|
|
|
+ margin-bottom: 16px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.miniprogram-card .el-form-item:last-child,
|
|
|
|
|
+.luckybag-card .el-form-item:last-child,
|
|
|
|
|
+.upload-card .el-form-item:last-child {
|
|
|
|
|
+ margin-bottom: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.miniprogram-card .el-form-item__label::before,
|
|
|
|
|
+.luckybag-card .el-form-item__label::before,
|
|
|
|
|
+.upload-card .el-form-item__label::before {
|
|
|
|
|
+ color: #f56c6c;
|
|
|
|
|
+ margin-right: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 上传组件优化 */
|
|
|
|
|
+.avatar-uploader ::v-deep .el-upload {
|
|
|
|
|
+ border: 2px dashed #d9d9d9;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ transition: all 0.3s;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.avatar-uploader ::v-deep .el-upload:hover {
|
|
|
|
|
+ border-color: #1890ff;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.avatar-uploader-icon {
|
|
|
|
|
+ font-size: 28px;
|
|
|
|
|
+ color: #8c939d;
|
|
|
|
|
+ width: 150px;
|
|
|
|
|
+ height: 150px;
|
|
|
|
|
+ line-height: 150px;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ transition: all 0.3s;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.avatar-uploader ::v-deep .el-upload:hover .avatar-uploader-icon {
|
|
|
|
|
+ color: #1890ff;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* ===== 排序对话框优化 ===== */
|
|
|
|
|
+.sort-dialog ::v-deep .el-dialog {
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sort-dialog ::v-deep .el-dialog__header {
|
|
|
|
|
+ background: linear-gradient(135deg, #1890ff 0%, #0066cc 100%);
|
|
|
|
|
+ padding: 16px 20px;
|
|
|
|
|
+ border-radius: 8px 8px 0 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sort-dialog ::v-deep .el-dialog__title {
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sort-dialog ::v-deep .el-dialog__headerbtn .el-dialog__close {
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sort-dialog ::v-deep .el-dialog__body {
|
|
|
|
|
+ padding: 20px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sort-dialog-content {
|
|
|
|
|
+ min-height: 200px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sort-tip {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ padding: 10px 14px;
|
|
|
|
|
+ background: #f0f9ff;
|
|
|
|
|
+ border-left: 3px solid #1890ff;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+ color: #666;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sort-tip i {
|
|
|
|
|
+ color: #1890ff;
|
|
|
|
|
+ margin-right: 8px;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sort-button-group {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
|
+ gap: 12px;
|
|
|
|
|
+ padding: 20px;
|
|
|
|
|
+ background: #fafafa;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ min-height: 120px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sort-button {
|
|
|
|
|
+ padding: 10px 20px;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ cursor: move;
|
|
|
|
|
+ transition: all 0.3s;
|
|
|
|
|
+ border: 2px solid #e8e8e8;
|
|
|
|
|
+ background: #fff;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sort-button:hover {
|
|
|
|
|
+ transform: translateY(-2px);
|
|
|
|
|
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
|
|
|
+ border-color: #1890ff;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sort-button.changed {
|
|
|
|
|
+ background: linear-gradient(135deg, #fff1f0 0%, #ffccc7 100%);
|
|
|
|
|
+ border-color: #ff4d4f;
|
|
|
|
|
+ color: #cf1322;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.origin-day {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: #999;
|
|
|
|
|
+ margin-left: 6px;
|
|
|
|
|
+ font-weight: normal;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.dialog-footer {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: flex-end;
|
|
|
|
|
+ gap: 12px;
|
|
|
|
|
+ padding-top: 10px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.dialog-footer .el-button {
|
|
|
|
|
+ margin-left: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* ===== 图片和链接卡片优化 ===== */
|
|
|
|
|
+.image-card,
|
|
|
|
|
+.link-card {
|
|
|
|
|
+ margin-top: 12px;
|
|
|
|
|
+ border: 1px solid #e8e8e8;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.image-card ::v-deep .el-card__header,
|
|
|
|
|
+.link-card ::v-deep .el-card__header {
|
|
|
|
|
+ padding: 0;
|
|
|
|
|
+ border-bottom: none;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.image-card ::v-deep .el-card__body,
|
|
|
|
|
+.link-card ::v-deep .el-card__body {
|
|
|
|
|
+ padding: 16px 20px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.image-card .el-form-item,
|
|
|
|
|
+.link-card .el-form-item {
|
|
|
|
|
+ margin-bottom: 16px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.image-card .el-form-item:last-child,
|
|
|
|
|
+.link-card .el-form-item:last-child {
|
|
|
|
|
+ margin-bottom: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.image-card .el-form-item__label::before,
|
|
|
|
|
+.link-card .el-form-item__label::before {
|
|
|
|
|
+ color: #f56c6c;
|
|
|
|
|
+ margin-right: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 图片上传区域 */
|
|
|
|
|
+.image-card ::v-deep .image-upload {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ padding: 20px 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 链接地址区域 */
|
|
|
|
|
+.link-url-section {
|
|
|
|
|
+ margin-top: 16px;
|
|
|
|
|
+ padding-top: 16px;
|
|
|
|
|
+ border-top: 1px solid #f0f0f0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.link-tip-section {
|
|
|
|
|
+ margin-top: 16px;
|
|
|
|
|
+ padding: 16px;
|
|
|
|
|
+ background: #fffbf0;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ border: 1px solid #ffe7ba;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.link-tip-section .el-tag {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ padding: 10px 14px;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ line-height: 1.6;
|
|
|
|
|
+ border: none;
|
|
|
|
|
+ background: transparent;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.link-tip-section .el-tag i {
|
|
|
|
|
+ margin-right: 8px;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 链接卡片输入框优化 */
|
|
|
|
|
+.link-card ::v-deep .el-input__inner,
|
|
|
|
|
+.link-card ::v-deep .el-textarea__inner {
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.link-card ::v-deep .el-form-item__label {
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ color: #606266;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 图片上传组件增强 */
|
|
|
|
|
+.image-card ::v-deep .el-upload {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ border: 2px dashed #d9d9d9;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ transition: all 0.3s;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.image-card ::v-deep .el-upload:hover {
|
|
|
|
|
+ border-color: #1890ff;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.image-card ::v-deep .el-upload-list__item {
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ transition: all 0.3s;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.image-card ::v-deep .el-upload-list__item:hover {
|
|
|
|
|
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* ===== 消息类别和课程选择优化 ===== */
|
|
|
|
|
+.msg-category-item {
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.msg-category-item ::v-deep .el-form-item__label {
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+ line-height: 32px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.msg-category-item ::v-deep .el-form-item__content {
|
|
|
|
|
+ line-height: 32px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.msg-category-item ::v-deep .el-radio-group {
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
|
+ gap: 8px 20px;
|
|
|
|
|
+ line-height: 32px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.msg-category-item ::v-deep .el-radio {
|
|
|
|
|
+ margin-right: 0;
|
|
|
|
|
+ margin-bottom: 0;
|
|
|
|
|
+ line-height: 32px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 课程选择区域 */
|
|
|
|
|
+.course-select-item {
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.course-select-item ::v-deep .el-form-item__label {
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.course-select-row {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ gap: 12px;
|
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
|
+ margin-bottom: 12px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.course-select-row .el-select {
|
|
|
|
|
+ min-width: 160px;
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.course-type-row {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ gap: 12px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.course-type-row .el-select {
|
|
|
|
|
+ width: 180px;
|
|
|
|
|
+}
|
|
|
</style>
|
|
</style>
|
|
|
<script>
|
|
<script>
|
|
|
import draggable from 'vuedraggable';
|
|
import draggable from 'vuedraggable';
|