| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388 | {extend name="common/common2" /}{block name="main"}<style>    .select-box{        position: fixed;        z-index: 100;        width: 350px;        top: 0;        right: 0;        background-color: #ffffff;        bottom: 0;        overflow: auto;    }    .select-img{        cursor: pointer;        width: 25px;        height: 25px;    }    .select-title{        padding: 15px;    }</style><div class="row">    <div class="col-sm-12">        <div class="ibox float-e-margins">            <div class="ibox-title">                <h5>{$meta_title}</h5>                <div class="ibox-tools">                    <a class="toback" href="{:url('index')}">                        返回上一页                    </a>                </div>            </div>            <div class="ibox-content">                <div class="row">                    <div class="col-xs-8">                        <form method="post" action="{:url('add')}" class="form-horizontal">                            <input type="hidden" name="id" value="{$info['id']|default='0'}">                            <div class="form-group">                                <label class="col-xs-3 control-label">名称<span class="text-danger">*</span></label>                                <div class="col-xs-9">                                    <input type="text" class="form-control" name="title" value="{$info.title|default=''}">                                </div>                            </div>                            <div class="form-group">                                <label class="col-xs-3 control-label">图片</label>                                <div class="col-xs-9">                                    {:widget_view('common/upimg',['name'=>'img','multi'=>0,'val'=>isset($info)?$info['img']:''])}                                </div>                            </div>                            <div class="form-group">                                <label class="col-xs-3 control-label">备注</label>                                <div class="col-xs-9">                                    <input type="text" class="form-control" name="remark" value="{$info.remark|default=''}">                                </div>                            </div>                            <div class="form-group">                                <label class="col-xs-3 control-label">大屏类型<span class="text-danger">*</span></label>                                <div class="col-xs-9">                                    <select name="type" id="screentype" class="form-control" onchange="changeType()">                                        <option value="1">项目大屏</option>                                        <option value="2">自定义大屏</option>                                        <option value="3">3D大屏</option>                                    </select>                                </div>                            </div>                            <div class="form-group" id="screen-url">                                <label class="col-xs-3 control-label">大屏链接</label>                                <div class="col-xs-9">                                    <input type="text" class="form-control" name="url" value="{$info.url|default=''}">                                </div>                            </div>                            <div id="vueapp-module">                                <div class="form-group">                                    <label class="col-xs-3 control-label">模板<span class="text-danger">*</span></label>                                    <div class="col-xs-9">                                        <input type="hidden" name="tid" id="tid" value="{$info.tid|default='0'}">                                        <button type="button" class="btn btn-sm btn-primary" @click="selectTemp">选择模板</button>                                        <div v-if="ttitle">                                            {{ttitle}}                                        </div>                                    </div>                                </div>                                <div class="form-group">                                    <label class="col-xs-3 control-label">模块绑定</label>                                    <div class="col-xs-9">                                        <input type="hidden" id="ele-module" name="content" value="{$info.content|default=''}">                                        <table class="table table-bordered">                                            <thead>                                            <tr>                                                <th>序号</th>                                                <th>绑定模块</th>                                                <th>预览模块</th>                                            </tr>                                            </thead>                                            <tbody>                                            <tr v-for="(item,index) in contents" :key="index">                                                <th>{{item.id}}</th>                                                <th>                                                    <button type="button" class="btn btn-sm btn-primary" @click="selectModule(item)">选择模块</button>                                                    {{item.title}}                                                </th>                                                <th>                                                    <img v-if="item.img" :src="item.img" style="width: 40px;height: 40px;" onclick="open_img(this)" alt="">                                                </th>                                            </tr>                                            </tbody>                                        </table>                                    </div>                                </div>                                <div class="select-box" v-if="showTemp || showModule">                                    <div v-if="showTemp">                                        <div class="select-title">                                            选择模板                                            <button type="button" class="btn btn-xs pull-right btn-danger" @click="closeSelect">关闭</button>                                        </div>                                        <table class="table table-bordered">                                            <tr v-for="(item,index) in temps" :key="index">                                                <td>                                                    <img v-if="tid == item.id" class="select-img" src="/img/dui.png" alt="" @click="sTemp(item)">                                                    <img v-if="tid != item.id" class="select-img" src="/img/undui.png" alt="" @click="sdTemp(item)">                                                    <img onclick="open_img(this)" :src="item.img" style="width: 50px;height: 50px" alt="">                                                    {{item.title}}                                                </td>                                            </tr>                                        </table>                                    </div>                                    <div v-if="showModule">                                        <div class="select-title">                                            选择模块                                            <button type="button" class="btn btn-xs pull-right btn-danger" @click="closeSelect">关闭</button>                                        </div>                                        <table class="table table-bordered">                                            <tr v-for="(item,index) in options" :key="index">                                                <td>                                                    <img v-if="curItem.mid == item.id" class="select-img" src="/img/dui.png" alt="" @click="sModule(item)">                                                    <img v-if="curItem.mid != item.id" class="select-img" src="/img/undui.png" alt="" @click="sdModule(item)">                                                    <img onclick="open_img(this)" :src="item.img" style="width: 50px;height: 50px" alt="">                                                    {{item.title}}                                                </td>                                            </tr>                                        </table>                                    </div>                                </div>                            </div>                            <div class="hr-line-dashed"></div>                            <div class="form-group">                                <div class="col-xs-9 col-xs-offset-3">                                    <button class="btn btn-primary ajax-post" target-form="form-horizontal" type="submit">确 定</button>                                    <a href="{:url('index')}" class="btn btn-default">取 消</a>                                </div>                            </div>                        </form>                    </div>                </div>            </div>        </div>    </div></div>{/block}{block name="script"}<script>    $(document).ready(function(){        formSetValue("tid", {$info.tid|default=0});        formSetValue("type", {$info.type|default=1});        changeType();    });    function changeType() {        var v = $('#screentype').val();        if(v == 1){            $('#vueapp-module').show();            $('#screen-url').hide();        }else{            $('#screen-url').show();            $('#vueapp-module').hide();        }    }    var options = {:json_encode($moduleList)};    var temps = {:json_encode($tempList)};    var tid = {$info.tid|default=0};    var nums = {$nums|default=0};    new Vue({        el: '#vueapp-module',        data: function() {            return {                options: options,                temps: temps,                showTemp: false,                showModule: false,                contents: [],                value: '',                tid: tid,                nums: nums,                ttitle: '',                curItem: null            }        },        computed: {            scontent() {                const vals = JSON.parse(JSON.stringify(this.contents));                return vals;            },        },        watch: {            scontent: function (newVal, oldVal) {                this.formatContent();                const vv = [];                this.contents.forEach((item) => {                    vv.push({                        id: item.id,                        mid: item.mid,                    })                });                this.value = vv.length > 0 ? JSON.stringify(vv):'';                $('#ele-module').val(this.value);            },            tid: function (newVal, oldVal) {                $('#tid').val(this.tid);            }        },        created(){            {if condition="!empty($info)"}                const vals = '{:json_encode($info["content2"])}';            {else /}                const vals = '';            {/if}                console.log(vals);            this.value = vals;            const valss = vals?JSON.parse(vals):[];            console.log(valss);            const cc = [];            valss.forEach((item) => {                let img = '';                let tti = '';                this.options.forEach((item2) => {                    if(item.mid == item2.id){                        img = item2.img;                        tti = item2.title;                    }                });                cc.push({                    id: item.id,                    mid: item.mid,                    img: img,                    title: tti,                })            });            if(this.tid > 0){                this.temps.forEach((item) => {                    if(item.id == this.tid){                        this.nums = item.nums;                        this.ttitle = item.title;                    }                });            }            if(cc.length == 0 && this.nums > 0){                let i = 1;                this.contents = [];                while (this.nums > i){                    this.contents.push({                        id: i,                        mid: 0,                        img: '',                        title: '',                    });                    i++;                }            }            if(cc.length > 0){                this.contents = cc;            }            console.log('11111',this.value,this.options, this.contents);        },        methods:{            changeTemp(){                this.contents = [];                if(this.tid > 0){                    this.temps.forEach((item) => {                        if(item.id == this.tid){                            this.nums = item.nums;                        }                    });                    if(this.nums > 0){                        let i = 1;                        while (this.nums >= i){                            this.contents.push({                                id: i,                                mid: 0,                                img: '',                                title: '',                            });                            i++;                        }                    }                }                console.log('contents',this.contents);            },            selectTemp(){                this.showTemp = true;                this.showModule = false;            },            selectModule(obj){                this.showTemp = false;                this.showModule = true;                this.curItem = obj;            },            closeSelect(){                this.showTemp = false;                this.showModule = false;            },            sdTemp(obj) {                this.tid = obj.id;                this.ttitle = obj.title;                this.changeTemp();                this.closeSelect();            },            sTemp(obj) {                this.tid = 0;                this.ttitle = '';                this.changeTemp();                this.closeSelect();            },            sdModule(obj) {                this.curItem.mid = obj.id;                this.curItem.title = obj.title;                this.curItem.img = obj.img;                this.changeModule();                this.closeSelect();            },            sModule(obj) {                this.curItem.mid = 0;                this.curItem.title = '';                this.curItem.img = '';                this.changeModule();                this.closeSelect();            },            changeModule(){                this.contents.forEach((item) => {                    const info = item;                    if(item.id == this.curItem.id){                        info.title = this.curItem.title;                        info.img = this.curItem.img;                        info.mid = this.curItem.mid;                    }                })            },            formatContent(){                this.contents.forEach((item) => {                    const info = item;                    this.options.forEach((item2) => {                        if(item2.id == item.mid){                            info.img = item2.img;                            info.title = item2.title;                        }                    });                })            },        }    })</script>{/block}
 |