| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505 | {extend name="common/common2" /}{block name="main"}<div class="row">    <div class="col-sm-12">        <div class="ibox float-e-margins">            {if condition="$isCalendar neq 1 && $type neq 1"}            <div class="ibox-title">                <h5>{$meta_title}</h5>                <div class="ibox-tools">                    <a class="toback" href="{:url('index')}">                        返回上一页                    </a>                </div>            </div>            {/if}            <div class="ibox-content">                <form method="post" action="{:url('add')}" class="form-horizontal">                    <input type="hidden" name="id" value="{$info['id']|default='0'}">                    <input type="hidden" name="type" value="{$type|default='0'}">                    <input type="hidden" name="isCalendar" value="{$isCalendar|default='0'}">                    <div class="form-group">                        <label class="col-sm-2 control-label">任务名称<span class="text-danger">*</span></label>                        <div class="col-sm-8">                            <input type="text" class="form-control" name="title" value="{$info.title|default=''}" placeholder="请输入任务名称">                        </div>                    </div>                    <div class="form-group" id="vue-plan">                        <label class="col-sm-2 control-label">地点<span class="text-danger">*</span></label>                        <div class="col-sm-8">                            <input type="hidden" name="addrs" value="" id="addrForms">                            <button class="btn btn-sm btn-primary" type="button" @click="selectAddr()">添加地点</button>                            <button class="btn btn-sm btn-primary" type="button" @click="selectForm()">设置检查内容</button>                            <button class="btn btn-sm btn-danger" type="button" @click="delAddrs">移除</button>                            <el-table                                    v-if="tableData.length > 0"                                    :data="tableData"                                    height="250"                                    border                                    @selection-change="handleSelectionChange"                                    style="width: 100%">                                <el-table-column                                        type="selection"                                        width="60">                                </el-table-column>                                <el-table-column                                        prop="addrTitle"                                        label="地点名称"                                        width="180">                                </el-table-column>                                <el-table-column                                        prop="formTitle"                                        label="检查内容"                                >                                </el-table-column>                                <el-table-column label="操作" width="130">                                    <template slot-scope="scope">                                        <button class="btn btn-sm" type="button" @click="moveUp(scope.$index, scope.row)">上移</button>                                        <button class="btn btn-sm" type="button" @click="moveDown(scope.$index, scope.row)">下移</button>                                    </template>                                </el-table-column>                            </el-table>                            <el-dialog                                    title="选择地点"                                    :visible.sync="dialogVisibleAddr"                                    width="500px"                                    :before-close="handleClose"                            >                                <el-input                                        placeholder="请输入"                                        v-model="addrkeyword"                                        @input="searchAddr"                                        clearable>                                </el-input>                                <el-table                                        ref="singleTable"                                        :data="addrs"                                        height="200"                                        @selection-change="handleSelectionChangeAddr"                                        style="width: 100%">                                    <el-table-column                                            type="selection"                                            width="60">                                    </el-table-column>                                    <el-table-column                                            property="title"                                            label="名称"                                    >                                    </el-table-column>                                </el-table>                                <span slot="footer" class="dialog-footer">                                    <el-button @click="dialogVisibleAddr = false">取 消</el-button>                                    <el-button type="primary" @click="saveAddr">确 定</el-button>                                </span>                            </el-dialog>                            <el-dialog                                    title="选择检查内容"                                    :visible.sync="dialogVisibleForm"                                    width="500px"                                    :before-close="handleCloseForm"                            >                                <el-input                                        placeholder="请输入"                                        v-model="formkeyword"                                        @input="searchForm"                                        clearable>                                </el-input>                                <el-table                                        ref="singleTable2"                                        :data="forms"                                        highlight-current-row                                        height="200"                                        @current-change="handleCurrentChange"                                        style="width: 100%">                                    <el-table-column                                            type="index"                                            label="序号"                                            width="60">                                    </el-table-column>                                    <el-table-column                                            property="title"                                            label="名称"                                    >                                    </el-table-column>                                </el-table>                                <span slot="footer" class="dialog-footer">                                    <el-button @click="dialogVisibleAddr = false">取 消</el-button>                                    <el-button type="primary" @click="saveForm">确 定</el-button>                                </span>                            </el-dialog>                        </div>                    </div>                    <div class="form-group">                        <label class="col-sm-2 control-label">检查人员<span class="text-danger">*</span></label>                        <div class="col-sm-8">                            {:widget_view('common/multiselect',['name'=>'user_ids','lists' =>$user, 'val' =>isset($info)?$info['task_user']:[]])}                        </div>                    </div>                    <div class="form-group">                        <label class="col-sm-2 control-label">开始时间<span class="text-danger">*</span></label>                        <div class="col-sm-8">                            <input  class="form-control" id="date" readonly name="start_time" value="{$info.start_time|default=$start}">                        </div>                    </div>                    <div class="form-group">                        <label class="col-sm-2 control-label">结束时间<span class="text-danger">*</span></label>                        <div class="col-sm-8">                            <input class="form-control" id="date-one" readonly name="end_time" value="{$info.end_time|default=$end}">                        </div>                    </div>                    <div class="hr-line-dashed"></div>                    <div class="form-group">                        <div class="col-sm-8 col-sm-offset-2">                            <button class="btn btn-primary ajax-post" target-form="form-horizontal"{if $type==1 && $isCalendar!=1} data-layer="1"{/if} type="submit">确 定</button>                            {if $type==1}                            {if $isCalendar==1}                            <a href="{:url('calendar')}" class="btn btn-default">取 消</a>                            {else}                            <button  class="btn cancel-btn btn-default" type="button">取 消</button>                            {/if}                            {else}                            <a href="{:url('index')}" class="btn btn-default">取 消</a>                            {/if}                        </div>                    </div>                </form>            </div>        </div>    </div></div>{/block}{block name="script"}<script type="text/javascript" src="/static/layDate-v5.0.9/laydate.js"></script><script>    var time =new Date();    //日期时间选择器    laydate.render({        elem: '#date',        type: 'datetime',        format:'yyyy-MM-dd HH:mm',        trigger: 'click' ,        theme:'#6eb7ff'        // value:dateFormat(),    });    laydate.render({        elem: '#date-one',        type: 'datetime',        trigger: 'click' ,        format:'yyyy-MM-dd HH:mm',        theme:'#6eb7ff'        // value:dateFormatH(),    });    //当前日期格式化    function dateFormat() {        var  year=time.getFullYear();        var  mouth=time.getMonth()+ 1;        if(mouth < 10){            var  mouths='0'+mouth;        }else {            var  mouths=mouth;        }        var  day=time.getDate();        if(day < 10){            var  days='0'+day;        }else {            var  days=day;        }        var  hour=time.getHours();        if(hour < 10){            var  hours='0'+hour;        }else {            var  hours=hour;        }        var minute=time.getMinutes();        if(minute < 10){            var  minutes='0'+minute;        }else {            var  minutes=minute;        }        var dateStr=year+'-'+mouths+'-'+days+' '+hours+':'+minutes;        return dateStr;    }    function dateFormatH() {        var  year=time.getFullYear();        var  mouth=time.getMonth()+ 1;        if(mouth < 10){            var  mouths='0'+mouth;        }else {            var  mouths=mouth;        }        var  day=time.getDate();        if(day < 10){            var  days='0'+day;        }else {            var  days=day;        }        var  hour=time.getHours();        if(hour < 10){            var  hours='0'+hour;        }else {            var  hours=hour;        }        var minute=time.getMinutes()+20;        var dateStr=year+'-'+mouths+'-'+days+' '+hours+':'+minute;        return dateStr;    }    var ads = {:json_encode($address)};    var frs = {:json_encode($greenForm)};    var addrForms = {:json_encode($info['addrForms'])};    new Vue({        el: '#vue-plan',        data: function() {            return {                title: '',                dialogVisible: false,                step: 0,                date: '',                tableData: [],                selAddrForms: [], // 选择的地址表单                addrs: ads,                selAddrs:[], // 选择地址                dialogVisibleAddr: false,                addrkeyword: '',                forms: frs,                selForm: null,                formkeyword: '',                dialogVisibleForm: false,            }        },        watch: {            nTableData(){                console.log('nTableData1111');                $('#addrForms').val(JSON.stringify(this.tableData));            }        },        computed: {            addrIds() { // 以保存的地址id                console.log('111ssss');                let ids = [];                this.tableData.forEach((item) => {                    ids.push(item.addrId);                });                return ids;            },            nTableData() { // 以保存的地址id                return JSON.parse(JSON.stringify(this.tableData));            },        },        created(){            this.tableData = addrForms;        },        methods: {            handleSelectionChange(val){                console.log(val);                this.selAddrForms = val;            },            handleClose(){                this.dialogVisibleAddr = false;            },            handleSelectionChangeAddr(val){                console.log(val);                this.selAddrs = val;            },            selectAddr(){                console.log('aaaaaaaaaaa');                this.dialogVisibleAddr = true;                this.addrkeyword = '';                this.addrs = ads.filter((item) => {                    return !this.addrIds.includes(item.id);                });                this.selAddrs = [];                console.log('bbbbbbbbb',this.addrs);            },            searchAddr(){                this.addrs= [];                this.$nextTick(() => {                    if(this.addrkeyword){                        this.addrs = ads.filter((item) => {                            return item.title.indexOf(this.addrkeyword) !== -1;                        });                    }else{                        this.addrs = ads;                    }                });            },            saveAddr(){                const tbs = this.tableData;                this.selAddrs.forEach((item) => {                    if(!this.addrIds.includes(item.id)){                        tbs.push({                            'addrId': item.id,                            'addrTitle': item.title,                            'formId': 0,                            'formTitle': '',                        });                    }                });                this.dialogVisibleAddr = false;                this.$nextTick(() => {                    this.tableData = tbs;                });            },            moveUp(idx,obj){                console.log(idx,obj);                if(idx > 0){                    let old = JSON.parse(JSON.stringify(this.tableData[idx]));                    let up = JSON.parse(JSON.stringify(this.tableData[idx - 1]));                    let tbs = this.tableData;                    this.tableData = [];                    this.$nextTick(() => {                        tbs[idx] = up;                        tbs[idx - 1] = old;                        this.tableData = tbs;                    })                }                console.log(this.tableData);            },            moveDown(idx,obj){ // 下移                console.log(idx,obj);                let length = this.tableData.length;                if(idx < length - 1){                    let old = JSON.parse(JSON.stringify(this.tableData[idx]));                    let up = JSON.parse(JSON.stringify(this.tableData[idx + 1]));                    let tbs = this.tableData;                    this.tableData = [];                    this.$nextTick(() => {                        tbs[idx] = up;                        tbs[idx + 1] = old;                        this.tableData = tbs;                    })                }            },            delAddrs(){ // 移除                let sids = [];                this.selAddrForms.forEach((item) => {                    sids.push(item.addrId);                });                if(sids.length == 0){                    this.$message.error('未选择地点');                    return false;                }                let tbs = this.tableData;                this.tableData = [];                this.$nextTick(() => {                    this.tableData = tbs.filter((item) => {                        return !sids.includes(item.addrId);                    });                });                console.log(this.selAddrForms,sids,this.tableData);            },            handleCurrentChange(val){ // 选中检查内容                console.log(val);                this.selForm = val;            },            handleCloseForm(){                this.dialogVisibleForm = false;            },            searchForm(){                this.forms= [];                this.$nextTick(() => {                    if(this.formkeyword){                        this.forms = frs.filter((item) => {                            return item.title.indexOf(this.formkeyword) !== -1;                        });                    }else{                        this.forms = frs;                    }                });            },            saveForm(){                console.log('1111');                const tbs = this.tableData;                this.tableData = [];                let sids = [];                this.selAddrForms.forEach((item) => {                    sids.push(item.addrId);                });                tbs.forEach((item) => {                    if(sids.includes(item.addrId)){                        item.formId = this.selForm?this.selForm.id:0;                        item.formTitle = this.selForm?this.selForm.title:'';                    }                });                this.dialogVisibleForm = false;                this.$nextTick(() => {                    this.tableData = tbs;                });            },            selectForm(){                let sids = [];                this.selAddrForms.forEach((item) => {                    sids.push(item.addrId);                });                if(sids.length == 0){                    this.$message.error('未选择地点');                    return false;                }                this.dialogVisibleForm = true;                this.forms = frs;                this.selForm = null;            },            getDateAll(starDay, endDay) { // 获取两个时间段的所有日期                var arr = [];                var dates = [];                // 设置两个日期UTC时间                var db = new Date(starDay);                var de = new Date(endDay);                // 获取两个日期GTM时间                var s = db.getTime() - 24 * 60 * 60 * 1000;                var d = de.getTime() - 24 * 60 * 60 * 1000;                // 获取到两个日期之间的每一天的毫秒数                for (var i = s; i <= d; ) {                    i = i + 24 * 60 * 60 * 1000;                    arr.push(parseInt(i));                }                // 获取每一天的时间  YY-MM-DD                for (var j in arr) {                    var time = new Date(arr[j]);                    var year = time.getFullYear(time);                    var mouth =                        time.getMonth() + 1 >= 10                            ? time.getMonth() + 1                            : "0" + (time.getMonth() + 1);                    var day =                        time.getDate() >= 10                            ? time.getDate()                            : "0" + time.getDate();                    var YYMMDD = year + "-" + mouth + "-" + day;                    dates.push(YYMMDD);                }                return dates;            },            getWeekByDay(dateString,t=0) { // 获取某天是周几                var dateArray = dateString.split("-");                date = new Date(dateArray[0], parseInt(dateArray[1] - 1), dateArray[2]);                if(t == 1){                    return "周" + "日一二三四五六".charAt(date.getDay());                }else{                    return date.getDay();                }            }        }    })</script>{/block}
 |