| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833 |
- <template>
- <div :style="bgcolors">
- <div class="i-layout-page-header header-title">
- <span class="ivu-page-header-title mr20">{{ $route.meta.title }}</span>
- <div>
- <div style="float: right">
- <Button class="bnt" type="primary" @click="save">保存</Button>
- </div>
- </div>
- </div>
- <div class="box-wrapper">
- <div class="left-wrapper" v-if="!$route.params.id && groupAll.length">
- <Menu :theme="theme3" :active-name="sortName" width="auto">
- <MenuGroup>
- <MenuItem
- :name="item.config_name"
- class="menu-item"
- v-for="(item, index) in groupAll"
- :key="index"
- @click.native="edits(item)"
- >
- {{ item.name }}
- </MenuItem>
- <MenuItem name="guide" class="menu-item" @click.native="edits(2)"> 开屏广告 </MenuItem>
- </MenuGroup>
- </Menu>
- </div>
- <div v-if="name == 'user_recharge_quota'" class="iframe">
- <div class="iframe-boxs">
- <div class="moneyBox">
- <div class="box1">
- <div class="font1">我的余额</div>
- <div>¥ <i class="font2">0.00</i></div>
- </div>
- <div class="moneyBox_content">
- <div class="box2">
- <div>账户充值</div>
- <div>佣金导入</div>
- </div>
- <div class="box3">
- <div v-show="item.status != 0" class="box3_box" v-for="(item, index) in sginList.list" :key="index">
- <div>{{ item.price }}<i class="font">元</i></div>
- <div class="font">赠送:{{ item.give_money }}元</div>
- </div>
- <div class="box3_box">
- <div class="other">其他</div>
- </div>
- </div>
- <div class="box4">
- <div class="tips">注意事项:</div>
- <div class="tips-samll">
- <p>充值后帐户的金额不能提现,可用于商城消费使用。</p>
- <p>佣金导入账户之后不能再次导出、不可提现。</p>
- <p>账户充值出现问题可联系商城客服,也可拨打商城客服热线:40088888889。</p>
- </div>
- </div>
- <div class="box5">立即充值</div>
- </div>
- </div>
- </div>
- </div>
- <div v-if="name == 'admin_login_slide'" class="pciframe" :bordered="false" dis-hover>
- <img src="../../../assets/images/pclogin.png" class="pciframe-box" />
- <div class="pcmoddile_goods">
- <div class="nofont" v-if="tabList.list == ''">暂无照片,请添加~</div>
- <swiper v-else :options="swiperOption" class="pcswiperimg_goods">
- <swiper-slide class="spcwiperimg_goods" v-for="(item, index) in tabList.list" :key="index">
- <img :src="item.slide" />
- </swiper-slide>
- </swiper>
- </div>
- </div>
- <div v-if="name == 'integral_shop_banner'" class="iframe" :bordered="false">
- <div class="iframe-box">
- <img src="../../../assets/images/integral.png" style="width: 100%" />
- <div class="moddile_goods">
- <div class="nofonts" v-if="tabList.list == '' || !tabList.list.length || !tabList.list[0].img">
- 暂无照片,请添加~
- </div>
- <swiper v-else :options="swiperOption" class="pcswiperimg_goods">
- <swiper-slide class="swiperimg_goods" v-for="(item, index) in tabList.list" :key="index">
- <img :src="item.img" />
- </swiper-slide>
- </swiper>
- </div>
- </div>
- </div>
- <div
- v-if="
- name != 'sign_day_num' &&
- name != 'admin_login_slide' &&
- name != 'user_recharge_quota' &&
- name != 'integral_shop_banner' &&
- a != 1 &&
- guide != 2
- "
- class="iframe"
- :bordered="false"
- dis-hover
- >
- <iframe :src="url" class="iframe-box" frameborder="0"></iframe>
- <div class="moddile"></div>
- <div
- v-if="
- name == 'routine_home_bast_banner' ||
- name == 'routine_home_hot_banner' ||
- name == 'routine_home_new_banner' ||
- name == 'routine_home_benefit_banner'
- "
- class="moddile_box"
- >
- <div class="nofonts" v-if="tabList.list == '' || !tabList.list.length || !tabList.list[0].img">
- 暂无照片,请添加~
- </div>
- <swiper v-else :options="swiperOption" class="swiperimg">
- <swiper-slide class="swiperimg" v-for="(item, index) in tabList.list" :key="index">
- <img :src="item.img" />
- </swiper-slide>
- </swiper>
- </div>
- <div v-if="name == 'combination_banner'" class="moddile_goods">
- <div class="nofonts" v-if="tabList.list == ''">暂无照片,请添加~</div>
- <swiper v-else :options="swiperOption" class="swiperimg_goods">
- <swiper-slide class="swiperimg_goods" v-for="(item, index) in tabList.list" :key="index">
- <img :src="item.img" />
- </swiper-slide>
- </swiper>
- </div>
- </div>
- <div v-if="name == 'sign_day_num'" class="iframe" :bordered="false">
- <div class="iframe-box">
- <img v-if="bgimg == 1" src="../../../assets/images/bluesgin.png" />
- <img v-if="bgimg == 2" src="../../../assets/images/greesgin.png" />
- <img v-if="bgimg == 3" src="../../../assets/images/redsgin.png" />
- <img v-if="bgimg == 4" src="../../../assets/images/pinksgin.png" />
- <img v-if="bgimg == 5" src="../../../assets/images/oragesgin.png" />
- </div>
- </div>
- <div v-if="a == 1" class="iframe" :bordered="false">
- <div class="agreement-box">
- <div class="template"></div>
- <div class="htmls_box">
- <div class="htmls_top">服务协议与隐私政策</div>
- <div class="htmls_font">
- <div class="ok">我同意</div>
- <div>不同意</div>
- </div>
- <div class="htmls" v-html="formValidate.content"></div>
- </div>
- </div>
- </div>
- <div v-if="a == 1" style="margin-left: 40px">
- <div class="table_box">
- <div type="flex">
- <div v-bind="grid">
- <div class="title">隐私权限页面展示:</div>
- </div>
- </div>
- <div>
- <Form
- class="form"
- ref="formValidate"
- :model="formValidate"
- :rules="ruleValidate"
- :label-width="labelWidth"
- :label-position="labelPosition"
- @submit.native.prevent
- >
- <div class="goodsTitle acea-row"></div>
- <FormItem label="" prop="content" style="margin: 0px">
- <WangEditor
- style="width: 90%"
- :content="formValidate.content"
- @editorContent="getEditorContent"
- ></WangEditor>
- </FormItem>
- </Form>
- </div>
- </div>
- </div>
- <div v-if="guide == 2" class="iframe" :bordered="false">
- <div class="nofonts" v-if="tabList.list == '' || !tabList.list.length || !tabList.list[0].img">
- 暂无照片,请添加~
- </div>
- <swiper :options="swiperOption" class="swiperimgs" v-else>
- <swiper-slide class="swiperimgs" v-for="(item, index) in tabList.list" :key="index">
- <img :src="item.img" />
- </swiper-slide>
- </swiper>
- </div>
- <div v-if="name == 'sign_day_num'" style="margin-left: 20px">
- <div class="table_box">
- <div type="flex">
- <div v-bind="grid">
- <div class="title">签到天数设置</div>
- <Button
- type="primary"
- icon="md-add"
- @click="groupAdd('添加数据')"
- style="margin-left: 14px; margin-top: 30px"
- >添加数据</Button
- >
- </div>
- </div>
- <div class="table">
- <Table
- :columns="columns1"
- :data="cmsList"
- ref="table"
- class="mt25"
- :loading="loading"
- highlight-row
- no-userFrom-text="暂无数据"
- no-filtered-userFrom-text="暂无筛选结果"
- >
- <template slot-scope="{ row, index }" slot="status">
- <i-switch
- v-model="row.status"
- :value="row.status"
- :true-value="1"
- :false-value="0"
- @on-change="onchangeIsShow(row)"
- size="large"
- >
- <span slot="open">显示</span>
- <span slot="close">隐藏</span>
- </i-switch>
- </template>
- <template slot-scope="{ row, index }" slot="action">
- <a @click="edit(row, '编辑')">编辑</a>
- <Divider type="vertical" />
- <a @click="del(row, '删除这条信息', index)">删除</a>
- </template>
- </Table>
- </div>
- </div>
- </div>
- <div v-if="name == 'user_recharge_quota'" style="margin-left: 20px">
- <div class="table_box">
- <div type="flex">
- <div v-bind="grid">
- <div class="title">充值金额设置</div>
- <Button
- type="primary"
- icon="md-add"
- @click="groupAdd('添加数据')"
- style="margin-left: 14px; margin-top: 30px"
- >添加数据</Button
- >
- </div>
- </div>
- <div class="table">
- <Table
- :columns="columns1"
- :data="sginList.list"
- ref="table"
- class="mt25"
- :loading="loading"
- highlight-row
- no-userFrom-text="暂无数据"
- no-filtered-userFrom-text="暂无筛选结果"
- >
- <template slot-scope="{ row, index }" slot="status">
- <i-switch
- v-model="row.status"
- :value="row.status"
- :true-value="1"
- :false-value="0"
- @on-change="onchangeIsShow(row)"
- size="large"
- >
- <span slot="open">显示</span>
- <span slot="close">隐藏</span>
- </i-switch>
- </template>
- <template slot-scope="{ row, index }" slot="action">
- <a @click="edit(row, '编辑')">编辑</a>
- <Divider type="vertical" />
- <a @click="del(row, '删除这条信息', index)">删除</a>
- </template>
- </Table>
- </div>
- </div>
- </div>
- <div v-else>
- <div
- v-if="name != 'sign_day_num' && a != 1 && guide != 2"
- :class="name != 'admin_login_slide' ? 'content' : 'contents'"
- >
- <div class="right-box">
- <div class="hot_imgs">
- <div class="title" v-if="name == 'admin_login_slide'">幻灯片设置</div>
- <div class="title" v-else>轮播图设置</div>
- <div class="title-text">建议尺寸:690 * 240px,拖拽图片可调整图片顺序哦,最多添加五张</div>
- <div class="list-box">
- <draggable
- v-if="name == 'admin_login_slide'"
- class="dragArea list-group Bbox"
- :list="tabList.list"
- group="peoples"
- handle=".move-icon"
- >
- <div class="items" v-for="(item, index) in tabList.list" :key="index">
- <div class="move-icon">
- <span class="iconfont icondrag2"></span>
- </div>
- <div class="img-box" @click="modalPicTap('单选', index)">
- <img :src="item.slide" alt="" v-if="item.slide" />
- <div class="upload-box" v-else>
- <Icon type="ios-camera-outline" size="36" />
- </div>
- <div class="delect-btn" @click.stop="bindDelete(item, index)">
- <Icon type="md-close-circle" size="26" />
- </div>
- </div>
- <div class="info"></div>
- </div>
- </draggable>
- <draggable v-else class="dragArea list-group" :list="tabList.list" group="peoples" handle=".move-icon">
- <div class="item" v-for="(item, index) in tabList.list" :key="index">
- <div class="move-icon">
- <span class="iconfont icondrag2"></span>
- </div>
- <div class="img-box" @click="modalPicTap('单选', index)">
- <img :src="item.img" alt="" v-if="item.img" />
- <div class="upload-box" v-else>
- <Icon type="ios-camera-outline" size="36" />
- </div>
- <div class="delect-btn" @click.stop="bindDelete(item, index)">
- <Icon type="md-close-circle" size="26" />
- </div>
- </div>
- <div class="info">
- <div class="info-item">
- <span>图片名称:</span>
- <div class="input-box">
- <Input v-model="item.comment" placeholder="请填写名称" />
- </div>
- </div>
- <div class="info-item">
- <span>链接地址:</span>
- <div class="input-box" @click="link(index)">
- <Input v-model="item.link" icon="ios-arrow-forward" readonly placeholder="选择链接" />
- </div>
- </div>
- </div>
- </div>
- </draggable>
- <div>
- <Modal
- v-model="modalPic"
- width="950px"
- scrollable
- footer-hide
- closable
- title="上传商品图"
- :mask-closable="false"
- :z-index="999"
- >
- <uploadPictures
- :isChoice="isChoice"
- @getPic="getPic"
- :gridBtn="gridBtn"
- :gridPic="gridPic"
- v-if="modalPic"
- ></uploadPictures>
- </Modal>
- </div>
- </div>
- <template>
- <div class="add-btn">
- <Button
- type="primary"
- ghost
- style="width: 100px; height: 35px; background-color: #1890ff; color: #ffffff"
- @click="addBox"
- >添加图片
- </Button>
- </div>
- </template>
- </div>
- </div>
- </div>
- </div>
- <div v-if="guide === 2" :class="name != 'admin_login_slide' ? 'content' : 'contents'">
- <div class="right-box">
- <div class="hot_imgs">
- <div class="title">引导页设置</div>
- <div class="title-text">建议尺寸:750 * 1334px,拖拽图片可调整图片顺序哦,最多添加五张</div>
- <div class="list-box">
- <div>
- <Form :model="formItem" :label-width="80">
- <FormItem label="开屏广告:">
- <i-switch v-model="formItem.status" :true-value="1" :false-value="0" size="large">
- <span slot="开">开启</span>
- <span slot="关">关闭</span>
- </i-switch>
- </FormItem>
- <FormItem label="广告时间:">
- <Input
- v-model.number="formItem.time"
- type="number"
- placeholder="请输入开屏广告时间"
- style="width: 150px"
- ></Input>
- 单位(秒)
- </FormItem>
- </Form>
- </div>
- <draggable class="dragArea list-group" :list="tabList.list" group="peoples" handle=".move-icon">
- <div class="item" v-for="(item, index) in tabList.list" :key="index">
- <div class="move-icon">
- <span class="iconfont icondrag2"></span>
- </div>
- <div class="img-box" @click="modalPicTap('单选', index)">
- <img :src="item.img" alt="" v-if="item.img" />
- <div class="upload-box" v-else>
- <Icon type="ios-camera-outline" size="36" />
- </div>
- <div class="delect-btn" @click.stop="bindDelete(item, index)">
- <Icon type="md-close-circle" size="26" />
- </div>
- </div>
- <div class="info">
- <div class="info-item">
- <span>图片名称:</span>
- <div class="input-box">
- <Input v-model="item.comment" placeholder="请填写名称" />
- </div>
- </div>
- <div class="info-item">
- <span>链接地址:</span>
- <div class="input-box" @click="link(index)">
- <Input v-model="item.link" icon="ios-arrow-forward" readonly placeholder="选择链接" />
- </div>
- </div>
- </div>
- </div>
- </draggable>
- <div>
- <Modal
- v-model="modalPic"
- width="950px"
- scrollable
- footer-hide
- closable
- title="上传商品图"
- :mask-closable="false"
- :z-index="999"
- >
- <uploadPictures
- :isChoice="isChoice"
- @getPic="getPic"
- :gridBtn="gridBtn"
- :gridPic="gridPic"
- v-if="modalPic"
- ></uploadPictures>
- </Modal>
- </div>
- </div>
- <template v-if="tabList.list.length < 5">
- <div class="add-btn">
- <Button
- type="primary"
- ghost
- style="width: 100px; height: 35px; background-color: #1890ff; color: #ffffff"
- @click="addBox"
- >添加图片
- </Button>
- </div>
- </template>
- </div>
- </div>
- </div>
- </div>
- <linkaddress ref="linkaddres" @linkUrl="linkUrl"></linkaddress>
- </div>
- </template>
- <script>
- import WangEditor from '@/components/wangEditor/index.vue';
- import Setting from '@/setting';
- import { diyGetInfo, diySave, getColorChange } from '@/api/diy';
- import { mapState } from 'vuex';
- import editFrom from '@/components/from/from';
- import { productGetTempKeysApi, uploadType } from '@/api/product';
- import {
- groupAllApi,
- groupDataListApi,
- groupSaveApi,
- openAdvSave,
- groupDataAddApi,
- groupDataHeaderApi,
- groupDataEditApi,
- groupDataSetApi,
- getAgreement,
- setAgreement,
- getOpenAdv,
- } from '@/api/system';
- import draggable from 'vuedraggable';
- import uploadPictures from '@/components/uploadPictures';
- import linkaddress from '@/components/linkaddress';
- import { getCookies } from '@/libs/util';
- export default {
- name: 'list',
- components: {
- editFrom,
- draggable,
- uploadPictures,
- linkaddress,
- WangEditor,
- },
- computed: {
- bgcolors() {
- return {
- '--color-theme': this.bgCol,
- };
- },
- labelWidth() {
- return this.isMobile ? undefined : 120;
- },
- labelPosition() {
- return this.isMobile ? 'top' : 'right';
- },
- ...mapState('admin/layout', ['menuCollapse']),
- },
- data() {
- return {
- formValidate: {
- content: '',
- },
- ruleValidate: {},
- myConfig: {
- autoHeightEnabled: false, // 编辑器不自动被内容撑高
- initialFrameHeight: 500, // 初始容器高度
- initialFrameWidth: '100%', // 初始容器宽度
- UEDITOR_HOME_URL: '/UEditor/',
- serverUrl: '',
- },
- a: 0, //判断的隐私协议
- guide: 0,
- bgimg: 0,
- columns1: [],
- bgCol: '',
- name: 'routine_home_bast_banner',
- grid: {
- xl: 7,
- lg: 7,
- md: 12,
- sm: 24,
- xs: 24,
- },
- loading: false,
- sginList: [],
- progress: 0, // 进度条默认0
- swiperOption: {
- //显示分页
- pagination: {
- el: '.swiper-pagination',
- },
- //设置点击箭头
- navigation: {
- nextEl: '.swiper-button-next',
- prevEl: '.swiper-button-prev',
- },
- //自动轮播
- autoplay: {
- delay: 2000,
- //当用户滑动图片后继续自动轮播
- disableOnInteraction: false,
- },
- //开启循环模式
- loop: false,
- },
- url: '',
- BaseURL: Setting.apiBaseURL.replace(/adminapi/, ''),
- pageId: 0,
- theme3: 'light',
- tabList: [],
- upload_type: '', //视频上传类型 1 本地上传 2 3 4 OSS上传
- uploadData: {}, // 上传参数
- lastObj: {
- add_time: '',
- comment: '',
- gid: '',
- id: '',
- img: '',
- link: '',
- sort: '',
- status: 1,
- },
- isChoice: '单选',
- modalPic: false,
- gridPic: {
- xl: 6,
- lg: 8,
- md: 12,
- sm: 12,
- xs: 12,
- },
- gridBtn: {
- xl: 4,
- lg: 8,
- md: 8,
- sm: 8,
- xs: 8,
- },
- groupAll: [],
- activeIndex: 0,
- sortName: null,
- activeIndexs: 0,
- cmsList: [],
- loadingExist: false,
- formItem: {
- time: '',
- type: 'pic',
- status: 1,
- value: [],
- video_link: '',
- },
- fileUrl: Setting.apiBaseURL + '/file/upload',
- cardUrl: Setting.apiBaseURL + '/file/upload/1',
- header: {},
- type: 0,
- upload: {
- videoIng: false, // 是否显示进度条;
- },
- };
- },
- created() {
- this.color();
- this.uploadType();
- this.getToken();
- },
- mounted() {
- this.getGroupAll();
- this.info();
- this.url = this.BaseURL + 'pages/columnGoods/HotNewGoods/index?type=1';
- },
- methods: {
- getEditorContent(data) {
- this.formValidate.content = data;
- },
- // 删除视频;
- delVideo() {
- let that = this;
- that.$set(that.formItem, 'video_link', '');
- },
- //获取视频上传类型
- uploadType() {
- uploadType().then((res) => {
- this.upload_type = res.data.upload_type;
- });
- },
- // 上传成功
- handleSuccess(res, file, fileList) {
- if (res.status === 200) {
- this.$set(this.formItem, 'video_link', res.data.src);
- this.$Message.success(res.msg);
- } else {
- this.$Message.error(res.msg);
- }
- },
- zh_uploadFile() {
- if (this.video_link) {
- this.formValidate.video_link = this.video_link;
- } else {
- this.$refs.refid.click();
- }
- },
- zh_uploadFile_change(evfile) {
- let that = this;
- let suffix = evfile.target.files[0].name.substr(evfile.target.files[0].name.indexOf('.'));
- if (suffix.indexOf('.mp4') === -1) {
- return that.$Message.error('只能上传MP4文件');
- }
- let types = {
- key: evfile.target.files[0].name,
- contentType: evfile.target.files[0].type,
- };
- productGetTempKeysApi(types)
- .then((res) => {
- that.$videoCloud
- .videoUpload({
- type: res.data.type,
- evfile: evfile,
- res: res,
- uploading(status, progress) {
- that.upload.videoIng = status;
- },
- })
- .then((res) => {
- that.formValidate.video_link = res.url;
- that.$Message.success('视频上传成功');
- })
- .catch((res) => {
- that.$Message.error(res);
- });
- })
- .catch((res) => {
- that.$Message.error(res.msg);
- });
- },
- // 上传头部token
- getToken() {
- this.header['Authori-zation'] = 'Bearer ' + getCookies('token');
- },
- beforeUpload() {
- this.uploadData = {};
- let promise = new Promise((resolve) => {
- this.$nextTick(function () {
- resolve(true);
- });
- });
- return promise;
- },
- linkUrl(e) {
- this.tabList.list[this.activeIndexs].link = e;
- },
- color() {
- getColorChange('color_change').then((res) => {
- switch (res.data.status) {
- case 1:
- this.bgCol = '#3875EA';
- this.bgimg = 1;
- break;
- case 2:
- this.bgCol = '#00C050';
- this.bgimg = 2;
- break;
- case 3:
- this.bgCol = '#E93323';
- this.bgimg = 3;
- break;
- case 4:
- this.bgCol = '#FF448F';
- this.bgimg = 4;
- break;
- case 5:
- this.bgCol = '#FE5C2D';
- this.bgimg = 5;
- break;
- }
- });
- },
- // 添加表单
- groupAdd() {
- this.$modalForm(groupDataAddApi({ gid: this.pageId, config_name: this.name }, 'setting/group_data/create')).then(
- () => {
- this.url = this.BaseURL + 'pages/users/user_sgin/index';
- this.info();
- },
- );
- },
- info() {
- groupDataListApi({ config_name: this.name }, 'setting/group_data')
- .then(async (res) => {
- this.tabList = res.data;
- if (this.name == 'admin_login_slide') {
- this.tabList.list.forEach((item, index, array) => {
- if (typeof item.slide != 'string' && item.slide != 'undefined') {
- item.slide = item.slide[0];
- }
- });
- } else if (this.name == 'sign_day_num') {
- this.cmsList = res.data.list;
- } else if (this.name == 'user_recharge_quota') {
- this.sginList = res.data;
- } else {
- this.tabList.list.forEach((item, index, array) => {
- if (typeof item.img != 'string' && item.img != 'undefined') {
- item.img = item.img[0];
- }
- });
- }
- })
- .catch((res) => {
- this.loading = false;
- this.$Message.error(res.msg);
- });
- },
- edits(row) {
- this.pageId = row.id || 0;
- this.name = row.config_name || '';
- if (row == 1) {
- this.a = 1;
- this.guide = 0;
- this.getAgreement();
- } else if (row == 2) {
- this.a = 0;
- this.guide = 2;
- getOpenAdv().then((res) => {
- if (res.data) {
- this.formItem = res.data;
- this.tabList.list = res.data.value;
- } else {
- this.formItem = {
- time: '',
- type: 'pic',
- status: 1,
- value: [],
- video_link: '',
- };
- this.tabList.list = [];
- }
- });
- } else {
- this.info();
- this.guide = 0;
- this.a = 0;
- switch (row.config_name) {
- case 'routine_home_bast_banner':
- this.url = this.BaseURL + 'pages/columnGoods/HotNewGoods/index?type=1&name=精品推荐';
- break;
- case 'sign_day_num':
- this.url = '';
- this.getListHeader();
- break;
- case 'combination_banner':
- this.url = this.BaseURL + 'pages/activity/goods_combination/index';
- break;
- case 'routine_home_hot_banner':
- this.url = this.BaseURL + 'pages/columnGoods/HotNewGoods/index?type=2&name=热门榜单';
- break;
- case 'routine_home_new_banner':
- this.url = this.BaseURL + 'pages/columnGoods/HotNewGoods/index?type=3&name=首发新品';
- break;
- case 'routine_home_benefit_banner':
- this.url = this.BaseURL + 'pages/columnGoods/HotNewGoods/index?type=4&name=促销单品';
- break;
- case 'user_recharge_quota':
- this.url = '';
- this.getListHeader();
- break;
- case 'admin_login_slide':
- this.url = '';
- break;
- case 'integral_shop_banner':
- this.url = '';
- break;
- }
- }
- },
- addBox() {
- if (this.tabList.list.length == 0) {
- this.tabList.list.push(this.lastObj);
- this.lastObj = {
- add_time: '',
- comment: '',
- gid: '',
- id: '',
- img: '',
- link: '',
- sort: '',
- status: 1,
- };
- } else {
- if (this.tabList.list.length == 5) {
- this.$Message.warning('最多添加五张呦');
- } else {
- let obj = JSON.parse(JSON.stringify(this.lastObj));
- this.tabList.list.push(obj);
- }
- }
- },
- // 删除
- bindDelete(item, index) {
- this.tabList.list.splice(index, 1);
- },
- // 点击图文封面
- modalPicTap(title, index) {
- this.activeIndex = index;
- this.modalPic = true;
- },
- // 获取图片信息
- getPic(pc) {
- this.$nextTick(() => {
- if (this.name == 'admin_login_slide') {
- this.tabList.list[this.activeIndex].slide = pc.att_dir;
- } else {
- this.tabList.list[this.activeIndex].img = pc.att_dir;
- }
- this.modalPic = false;
- });
- },
- save() {
- if (this.a == 1) {
- this.onsubmit('formValidate');
- } else if (this.guide == 2) {
- this.formItem.value = this.tabList.list;
- openAdvSave(this.formItem).then((res) => {
- this.$Message.success(res.msg);
- });
- } else {
- this.loadingExist = true;
- groupSaveApi({
- gid: this.pageId,
- config_name: this.name,
- data: this.tabList.list,
- })
- .then((res) => {
- this.loadingExist = false;
- this.$Message.success(res.msg);
- })
- .catch((err) => {
- this.loadingExist = false;
- this.$Message.error(err.msg);
- });
- }
- },
- link(index) {
- this.activeIndexs = index;
- this.$refs.linkaddres.modals = true;
- },
- getListHeader() {
- this.loading = true;
- groupDataHeaderApi({ config_name: this.name }, 'setting/sign_data/header')
- .then((res) => {
- let data = res.data;
- let header = data.header;
- let index = [];
- this.columns1 = header;
- this.loading = false;
- })
- .catch((res) => {
- this.loading = false;
- this.$Message.error(res.msg);
- });
- },
- // 编辑
- edit(row) {
- this.$modalForm(
- groupDataEditApi({ gid: this.pageId, config_name: this.name }, 'setting/group_data/' + row.id + '/edit'),
- ).then(() => {
- this.info();
- this.url = this.BaseURL + 'pages/users/user_sgin/index';
- });
- },
- // 删除
- del(row, tit, num) {
- let delfromData = {
- title: tit,
- num: num,
- url: 'setting/group_data/' + row.id,
- method: 'DELETE',
- ids: '',
- };
- this.$modalSure(delfromData)
- .then((res) => {
- this.info();
- this.$Message.success(res.msg);
- })
- .catch((res) => {
- this.$Message.error(res.msg);
- });
- },
- // 修改是否显示
- onchangeIsShow(row) {
- groupDataSetApi('setting/group_data/set_status/' + row.id + '/' + row.status)
- .then(async (res) => {
- this.url = this.BaseURL + '/pages/users/user_sgin/index';
- this.$Message.success(res.msg);
- this.info();
- })
- .catch((res) => {
- this.url = this.BaseURL + '/pages/users/user_sgin/index';
- this.$Message.error(res.msg);
- });
- },
- getGroupAll() {
- groupAllApi()
- .then(async (res) => {
- this.groupAll = res.data;
- this.sortName = res.data[0].config_name;
- this.pageId = res.data[0].id;
- })
- .catch((res) => {
- this.$Message.error(res.msg);
- });
- },
- getContent(val) {
- this.formValidate.content = val;
- },
- // 提交数据
- onsubmit(name) {
- this.$refs[name].validate((valid) => {
- if (valid) {
- setAgreement(this.formValidate)
- .then(async (res) => {
- this.$Message.success(res.msg);
- })
- .catch((res) => {
- this.$Message.error(res.msg);
- });
- } else {
- return false;
- }
- });
- },
- //详情
- getAgreement() {
- getAgreement()
- .then(async (res) => {
- let data = res.data;
- this.formValidate = {
- content: data.content,
- };
- })
- .catch((res) => {
- this.loading = false;
- this.$Message.error(res.msg);
- });
- },
- },
- };
- </script>
- <style scoped lang="stylus">
- /deep/ .ivu-menu-vertical .ivu-menu-item-group-title {
- display: none;
- }
- /deep/ .ivu-menu-vertical.ivu-menu-light:after {
- display: none;
- }
- /deep/.ivu-form-item-content {
- margin-left: 0px !important;
- }
- .nofont {
- text-align: center;
- line-height: 123px;
- }
- .nofonts {
- text-align: center;
- line-height: 105px;
- }
- .save {
- width: 100%;
- margin: 0 auto;
- text-align: center;
- background-color: #FFF;
- bottom: 0;
- padding: 16px;
- border-top: 3px solid #f5f7f9;
- }
- .form {
- .goodsTitle {
- margin-bottom: 25px;
- }
- .goodsTitle ~ .goodsTitle {
- margin-top: 20px;
- }
- .goodsTitle .title {
- border-bottom: 2px solid #1890ff;
- padding: 0 8px 12px 5px;
- color: #000;
- font-size: 14px;
- }
- .goodsTitle .icons {
- font-size: 15px;
- margin-right: 8px;
- color: #999;
- }
- .add {
- font-size: 12px;
- color: #1890ff;
- padding: 0 12px;
- cursor: pointer;
- }
- .radio {
- margin-right: 20px;
- }
- .upLoad {
- width: 58px;
- height: 58px;
- line-height: 58px;
- border: 1px dotted rgba(0, 0, 0, 0.1);
- border-radius: 4px;
- background: rgba(0, 0, 0, 0.02);
- }
- .iconfont {
- color: #898989;
- }
- .pictrue {
- width: 60px;
- height: 60px;
- border: 1px dotted rgba(0, 0, 0, 0.1);
- margin-right: 10px;
- }
- .pictrue img {
- width: 100%;
- height: 100%;
- }
- }
- .agreement-box {
- width: 310px;
- height: 550px;
- border-radius: 10px;
- background: rgba(0, 0, 0, 0);
- border: 1px solid #EEEEEE;
- opacity: 1;
- position: relative;
- .template {
- position: absolute;
- width: 100%;
- height: 100%;
- top: 0;
- left: 0;
- border-radius: 10px;
- background-color: #817e81;
- }
- .htmls_box {
- font-size: 12px;
- width: 259px;
- height: 430px;
- border-radius: 10px;
- background-color: #fff;
- position: absolute;
- top: 58px;
- left: 26px;
- .htmls_top {
- position: absolute;
- top: 8px;
- left: 0;
- height: 34px;
- text-align: center;
- width: 100%;
- line-height: 35px;
- font-weight: 600;
- font-size: 20px;
- }
- .htmls_font {
- position: absolute;
- bottom: 0;
- left: 0;
- padding: 15px 15px;
- text-align: center;
- width: 100%;
- div {
- height: 35px;
- line-height: 35px;
- border-radius: 20px;
- }
- .ok {
- background-color: #f33316;
- color: #FFFFFF;
- }
- }
- .htmls {
- position: absolute;
- background-color: #fff;
- top: 50px;
- left: 0;
- width: 259px;
- height: 281px;
- border-radius: 4px;
- overflow: auto;
- padding: 5px 15px;
- word-break: break-word;
- }
- .htmls::-webkit-scrollbar {
- display: none;
- }
- }
- }
- .Bbox {
- width: 495px;
- display: flex;
- flex-wrap: wrap;
- }
- .item {
- margin-right: 15px;
- border: 1px dashed #dbdbdb;
- padding-bottom: 10px;
- padding-right: 15px;
- padding-top: 20px;
- }
- .items {
- margin-right: 15px;
- border: 1px dashed #dbdbdb;
- padding-bottom: 10px;
- padding-top: 15px;
- position: relative;
- display: flex;
- margin-top: 20px;
- .move-icon {
- display: flex;
- align-items: center;
- justify-content: center;
- width: 30px;
- height: 80px;
- cursor: move;
- color: #D8D8D8;
- }
- .img-box {
- position: relative;
- width: 80px;
- height: 80px;
- img {
- width: 100%;
- height: 100%;
- }
- }
- .info {
- flex: 1;
- margin-left: 22px;
- .info-item {
- display: flex;
- align-items: center;
- margin-bottom: 10px;
- span {
- // width 40px
- font-size: 13px;
- .input-box {
- flex: 1;
- }
- }
- }
- }
- .delect-btn {
- position: absolute;
- right: -12px;
- top: -12px;
- color: #999999;
- .iconfont {
- font-size: 28px;
- color: #999;
- }
- }
- }
- .table {
- width: 700px;
- color: #515a6e;
- font-size: 14px;
- background-color: #fff;
- margin-left: 20px;
- }
- .contents {
- width: 150px;
- .right-box {
- margin-left: 40px;
- }
- .title-text {
- width: 500px;
- }
- }
- .pciframe {
- margin-left: 20px;
- width: 430px;
- height: 280px;
- background: #FFFFFF;
- border: 1px solid #EEEEEE;
- border-radius: 13px;
- position: relative;
- img {
- width: 100%;
- height: 100%;
- }
- .pciframe-box {
- background: rgba(0, 0, 0, 0);
- // border: 1px solid #EEEEEE;
- border-radius: 4px;
- }
- .pcmoddile_goods {
- position: absolute;
- top: 69px;
- width: 171px;
- height: 140px;
- border-top-left-radius: 2px;
- border-bottom-left-radius: 2px;
- left: 65px;
- background-color: #fff;
- }
- .pcswiperimg_goods {
- height: 140px;
- background-color: #f5f5f5;
- img {
- width: 100%;
- height: 100%;
- }
- }
- }
- .link {
- display: inline-block;
- width: 100%;
- height: 32px;
- line-height: 1.5;
- padding: 4px 7px;
- border: 1px solid #dcdee2;
- border-radius: 4px;
- background-color: #fff;
- position: relative;
- cursor: text;
- transition: border 0.2s ease-in-out, background 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
- font-size: 13px;
- font-family: PingFangSC-Regular;
- line-height: 22px;
- color: rgba(0, 0, 0, 0.25);
- opacity: 1;
- cursor: pointer;
- .you {
- color: #999999;
- float: right;
- margin-right: 11px;
- }
- }
- .swiperimg {
- width: 310px;
- max-height: 126px;
- border-top-left-radius: 10px;
- border-top-right-radius: 10px;
- img {
- width: 100%;
- height: 100%;
- }
- }
- .swiperimgs {
- width: 310px;
- height: 100%;
- border-radius: 10px;
- img {
- width: 100%;
- height: 100%;
- }
- }
- .swiperimg_goods {
- width: 284px;
- height: 124px;
- border-radius: 4px;
- line-height: 99px;
- text-align: center;
- background-color: #f5f5f5;
- img {
- width: 100%;
- height: 100%;
- }
- }
- .title {
- padding: 0 0 13px 0;
- font-weight: bold;
- font-size: 15px;
- border-left: 2px solid #1890FF;
- height: 23px;
- padding-left: 10px;
- }
- .title-text {
- padding: 0 0 0px 16px;
- color: #999;
- font-size: 12px;
- margin-top: 10px;
- }
- .content {
- // width 510px;
- .right-box {
- margin-left: 40px;
- }
- }
- .box {
- border-top: 3px solid #f5f7f9;
- padding: 10px;
- padding-top: 25px;
- width: 100%;
- .save {
- background-color: #1890FF;
- color: #FFFFFF;
- width: 71px;
- height: 30px;
- margin: 0 auto;
- text-align: center;
- line-height: 30px;
- cursor: pointer;
- }
- }
- .iframe {
- margin-left: 20px;
- position: relative;
- width: 310px;
- height: 550px;
- background: #FFFFFF;
- border: 1px solid #EEEEEE;
- opacity: 1;
- border-radius: 10px;
- }
- .moddile {
- position: absolute;
- width: 310px;
- height: 550px;
- top: 0px;
- opacity: 0;
- left: 0px;
- border-radius: 4px;
- }
- .moddile_box {
- position: absolute;
- top: 0px;
- width: 310px;
- height: 115px;
- border-top-left-radius: 4px;
- border-top-right-radius: 4px;
- left: 0px;
- background-color: #f5f5f5;
- }
- .moddile_goods {
- position: absolute;
- top: 12px;
- width: 284px;
- height: 124px;
- /* border-top-left-radius: 10px; */
- /* border-top-right-radius: 10px; */
- border-radius: 5px;
- left: 13px;
- line-height: 99px;
- text-align: center;
- background-color: #f5f5f5;
- }
- .iframe-box {
- width: 310px;
- height: 100%;
- border-radius: 10px;
- // margin: 30px 15px 0px 15px
- background: rgba(0, 0, 0, 0);
- border: 1px solid #EEEEEE;
- opacity: 1;
- img {
- width: 100%;
- height: 100%;
- }
- }
- .left-wrapper {
- min-width: 213px;
- background: #fff;
- border-right: 1px solid #f2f2f2;
- }
- .menu-item {
- position: relative;
- display: flex;
- justify-content: space-between;
- word-break: break-all;
- .icon-box {
- z-index: 3;
- position: absolute;
- right: 20px;
- top: 50%;
- transform: translateY(-50%);
- display: none;
- }
- &:hover .icon-box {
- display: block;
- }
- .right-menu {
- z-index: 10;
- position: absolute;
- right: -106px;
- top: -11px;
- width: auto;
- min-width: 121px;
- }
- }
- .tabBox_img {
- width: 36px;
- height: 36px;
- border-radius: 4px;
- cursor: pointer;
- img {
- width: 100%;
- height: 100%;
- }
- }
- .ivu-menu {
- z-index: auto;
- }
- .icondrag2 {
- font-size: 26px;
- color: #d8d8d8;
- }
- .hot_imgs {
- margin-bottom: 20px;
- .title {
- font-size: 14px;
- }
- .list-box {
- .item {
- position: relative;
- display: flex;
- margin-top: 20px;
- .move-icon {
- display: flex;
- align-items: center;
- justify-content: center;
- width: 30px;
- height: 80px;
- cursor: move;
- color: #D8D8D8;
- }
- .img-box {
- position: relative;
- width: 80px;
- height: 80px;
- img {
- width: 100%;
- height: 100%;
- }
- }
- .info {
- flex: 1;
- margin-left: 22px;
- .info-item {
- display: flex;
- align-items: center;
- margin-bottom: 10px;
- span {
- // width 40px
- font-size: 13px;
- }
- .input-box {
- flex: 1;
- }
- }
- }
- .delect-btn {
- position: absolute;
- right: -12px;
- top: -12px;
- color: #999999;
- .iconfont {
- font-size: 28px;
- color: #999;
- }
- }
- }
- }
- .add-btn {
- margin-top: 20px;
- }
- }
- .upload-box {
- display: flex;
- align-items: center;
- justify-content: center;
- width: 100%;
- height: 100%;
- background: #ccc;
- }
- .iconfont {
- color: #DDDDDD;
- font-size: 28px;
- }
- .iframe-boxs::-webkit-scrollbar {
- display: none;
- }
- .sgin_iframe::-webkit-scrollbar {
- display: none;
- }
- .iframe-boxs {
- width: 310px;
- height: 550px;
- border-radius: 10px;
- background: rgba(0, 0, 0, 0);
- border: 1px solid #EEEEEE;
- opacity: 1;
- overflow: auto;
- .moneyBox {
- background-color: var(--color-theme);
- height: 414px;
- border-radius: 10px;
- .box1 {
- text-align: center;
- color: #FFFFFF;
- padding-bottom: 15px;
- .font1 {
- padding-top: 20px;
- // padding-bottom 15px
- font-size: 12px;
- opacity: 0.6;
- }
- .font2 {
- font-size: 30px;
- font-style: normal;
- opacity: 0.9;
- }
- }
- .moneyBox_content {
- background-color: #FFFFFF;
- height: 317px;
- border-radius: 4px;
- .box2 {
- display: flex;
- justify-content: space-around;
- height: 35px;
- line-height: 35px;
- margin-bottom: 10px;
- div:nth-child(1) {
- font-weight: bold;
- border-bottom: 2px solid var(--color-theme);
- }
- }
- .box3 {
- padding: 0px 10px;
- display: flex;
- justify-content: left;
- flex-wrap: wrap;
- .box3_box {
- width: 90px;
- height: 55px;
- border-radius: 9px;
- background-color: #f4f4f4;
- color: #888;
- margin-bottom: 10px;
- text-align: center;
- padding-top: 3px;
- font-size: 19px;
- margin-right: 3px;
- margin-left: 3px;
- .font {
- font-size: 11px;
- font-style: normal;
- }
- }
- .box3_box:nth-child(1) {
- width: 90px;
- height: 55px;
- border-radius: 9px;
- background-color: var(--color-theme);
- color: #FFFFFF;
- text-align: center;
- padding-top: 3px;
- margin-right: 3px;
- margin-left: 3px;
- }
- .other {
- line-height: 55px;
- }
- }
- .box4 {
- padding: 0px 10px;
- .tips {
- font-size: 14px;
- color: #333333;
- font-weight: 800;
- margin-bottom: 7px;
- margin-top: 10px;
- }
- .tips-samll {
- font-size: 12px;
- color: #333333;
- margin-bottom: 7px;
- p {
- margin: 2px 0px;
- }
- }
- }
- .box5 {
- font-size: 15px;
- width: 225px;
- height: 40px;
- border-radius: 25px;
- margin: 23px auto 0 auto;
- line-height: 40px;
- text-align: center;
- background-color: var(--color-theme);
- color: #FFFFFF;
- }
- }
- }
- }
- .bnt {
- // width 80px!important
- }
- /deep/.ivu-page-header {
- border-bottom: unset;
- position: fixed;
- z-index: 9;
- width: 100%;
- }
- /deep/.i-layout-page-header {
- display: flex;
- align-items: center;
- justify-content: space-between;
- }
- .box-wrapper {
- display: flex;
- flex-wrap: nowrap;
- padding: 20px;
- background-color: #fff;
- border-radius: 5px;
- min-height: 600px;
- }
- .iview-video-style {
- width: 100%;
- height: 180px;
- border-radius: 10px;
- background-color: #707070;
- margin-top: 10px;
- position: relative;
- overflow: hidden;
- }
- .iview-video-style .iconv {
- color: #fff;
- line-height: 180px;
- width: 50px;
- height: 50px;
- display: inherit;
- font-size: 26px;
- position: absolute;
- top: -74px;
- left: 50%;
- margin-left: -25px;
- }
- .iview-video-style .mark {
- position: absolute;
- width: 100%;
- height: 30px;
- top: 0;
- background-color: rgba(0, 0, 0, 0.5);
- text-align: center;
- }
- </style>
|