中扬CRM客户关系管理系统
#
lsh
2024-04-16 264f7e4845032d22590d5d01d2332cc2129c10fd
src/main/webapp/views/weekly/weekly.html
@@ -1,201 +1,422 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title></title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <meta charset="UTF-8">
    <title>周计划</title>
    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
    <link rel="stylesheet" href="../../static/css/tree.css" media="all">
    <link rel="stylesheet" href="../../static/layui/lay/modules/formDesigner/coolForm.css"/>
    <style>
        .nav-box {
            position: absolute;
            top: 1px;
            left: 5px;
        }
        .nav-box-item {
            display: inline-block;
            vertical-align: middle;
            margin-right: 5px;
        }
        select#select-cstmr {
            color: rgba(0, 0, 0, 1) !important; /* 使用更具体的选择器 */
        }
        .cstmrDetl{
            /*color: rgba(0, 0, 0, 0); !* 使用更具体的选择器 *!*/
        }
    </style>
    <link rel="stylesheet" href="../../static/css/element.css">
    <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="../../static/layui/layui.js"></script>
    <script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
    <script type="text/javascript" src="../../static/js/common.js"></script>
    <script type="text/javascript" src="../../static/js/vue.min.js"></script>
    <script type="text/javascript" src="../../static/js/element.js"></script>
</head>
<body>
<div class="layui-fluid">
    <div class="layui-card">
        <div class="layui-card-body">
            <div id="search-box" class="layui-form toolbar"
                 style="display: flex;justify-content: flex-end;position: relative">
                <div class="nav-box">
                    <div class="nav-box-item">
                        <i class="layui-icon" style="color: #1890ff;font-weight: bold">&#xe613;</i>
                    </div>
                    <div class="nav-box-item">
                        <button id="organization" style="border: none;padding-right: 35px;"
                                class="layui-btn layui-btn-primary icon-btn">
                            未知
                        </button>
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="condition" placeholder="请输入" autocomplete="off"
                                   style="border-color: #e1e1e1">
                        </div>
                    </div>
                    <div class="layui-inline">&emsp;
                        <button class="layui-btn icon-btn layui-btn-sm" lay-filter="search" lay-submit>
                            <i class="layui-icon">&#xe615;</i>搜索
                        </button>
                    </div>
                </div>
<div id="app">
    <div>
        <el-dialog title="周计划" :visible.sync="dialogFormVisible" style="width: 1800px">
            <el-form :model="form" style="width: 100%">
                <el-form-item label="日期" :label-width="formLabelWidth">
                    <el-select v-model="form.name">
                        <el-option
                                v-for="item in addWeekPlanDataWeeklySign"
                                :key="item.value"
                                :label="item.label"
                                :value="item.value">
                        </el-option>
                    </el-select>
                </el-form-item>
                <el-form-item label="周计划" :label-width="formLabelWidth">
                    <el-button type="primary" @click="addWeekPlan">添加日计划</el-button>
                    <el-table
                            :data="weeklyFormData"
                            border
                            style="width: 100%">
                        <el-table-column
                            fixed
                            :data="addWeekPlanData"
                            prop="weeklyDay"
                            label="星期"
                            width="150">
                        </el-table-column>
                        <el-table-column
                                prop="cstmrId"
                                label="甲方单位"
                                width="180">
                            <div class="item" slot-scope="scope">
                                <el-select v-model="scope.row.cstmrId" placeholder="甲方单位">
                                    <el-option
                                            v-for="item in options"
                                            :key="item.value"
                                            :label="item.name"
                                            :value="item.value">
                                    </el-option>
                                </el-select>
                            </div>
                        </el-table-column>
                        <el-table-column
                            prop="workContent"
                            label="工作内容及目的"
                            width="180">
                            <div class="item" slot-scope="scope">
                                <el-input v-model="scope.row.workContent" placeholder="工作内容及目的"></el-input>
                            </div>
                        </el-table-column>
                        <el-table-column
                            prop="weeklyMatter"
                            label="需协助事项"
                            width="120">
                            <div class="item" slot-scope="scope">
                                <el-input v-model="scope.row.weeklyMatter" placeholder="需协助事项"></el-input>
                            </div>
                        </el-table-column>
                        <el-table-column
                                prop="addr"
                                label="地址"
                                width="180">
                            <div class="item" slot-scope="scope">
                                <el-input v-model="scope.row.addr" placeholder="地址"></el-input>
                            </div>
                        </el-table-column>
                        <el-table-column
                            prop="memo"
                            label="备注"
                            width="120">
                            <div class="item" slot-scope="scope">
                                <el-input v-model="scope.row.memo" placeholder="备注"></el-input>
                            </div>
                        </el-table-column>
                        <el-table-column  :show="false"  property="weeklyDay$" label="日期"  v-if="false"></el-table-column>
                        <el-table-column
                            fixed="right"
                            label="操作"
                            width="100">
                            <template slot-scope="scope">
                                <el-button @click="delWeeklyPlan(scope.row)" type="text" size="del-weekly-plan">删除</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
                </el-form-item>
            </el-form>
            <div slot="footer" class="dialog-footer">
                <el-button @click="dialogFormVisible = false, weeklyFormData=[]">取 消</el-button>
                <el-button type="primary" @click="dialogFormVisible = false, addWeekly(form,true)">确 定</el-button>
            </div>
            <table class="layui-hide" id="weekly" lay-filter="weekly"></table>
        </div>
        </el-dialog>
        <el-dialog
                title="星期"
                :visible.sync="addWeekPlanVisible"
                width="30%">
            <div>
                <el-select v-model="addWeekPlanValue" multiple placeholder="请选择">
                    <el-option
                            v-for="item in addWeekPlanData"
                            :key="item.value"
                            :label="item.name"
                            :value="item.value">
                    </el-option>
                </el-select>
            </div>
            <span slot="footer" class="dialog-footer">
            <el-button @click="addWeekPlanVisible = false">取 消</el-button>
            <el-button type="primary" @click="addWeekPlanConfirm">确 定</el-button>
            </span>
        </el-dialog>
        <el-main>
            <el-button type="primary"  @click="dialogFormVisible = true" icon="el-icon-edit" size="mini" circle></el-button>
            <el-table
                    :data="tableData"
                    style="width: 100%">
                <el-table-column
                        prop="weeklyDayMonth"
                        label="周">
                </el-table-column>
                <el-table-column
                        prop="status$"
                        label="状态">
                </el-table-column>
                <el-table-column
                        prop="weeklyDailyPlan"
                        label="日计划">
                    <template slot-scope="scope">
                        <el-popover
                                placement="bottom"
                                width="1200"
                                trigger="click">
                            <el-table :data="weeklyDailyPlanData">
                                <el-table-column property="weeklyDay$" label="日期"></el-table-column>
                                <el-table-column property="cstmrId$" label="甲方单位"></el-table-column>
                                <el-table-column property="dailyTime$" label="日期"></el-table-column>
                                <el-table-column width="180" property="workContent" label="工作内容及目的"></el-table-column>
                                <el-table-column property="weeklyMatter" label="需协助事项"></el-table-column>
                                <el-table-column property="addr" label="地址"></el-table-column>
                                <el-table-column property="memo" label="备注"></el-table-column>
                            </el-table>
                            <el-button slot="reference" type="text" @click="showWeeklyDailyPlan(scope.row.id)">查看日计划</el-button>
                        </el-popover>
                    </template>
                </el-table-column>
                <el-table-column
                        prop="weeklyDailyReality"
                        label="日结果">
                    <template slot-scope="scope">
                        <el-popover
                                placement="bottom"
                                width="1200"
                                trigger="click">
                            <el-table :data="weeklyDailyRealityData">
                                <el-table-column property="weeklyDay$" label="日期"></el-table-column>
                                <el-table-column property="cstmrId$" label="甲方单位"></el-table-column>
                                <el-table-column property="dailyTime$" label="日期"></el-table-column>
                                <el-table-column width="180" property="workContent" label="结果"></el-table-column>
                                <el-table-column property="weeklyMatter" label="需协助事项"></el-table-column>
                                <el-table-column property="addr" label="地址"></el-table-column>
                                <el-table-column property="memo" label="备注"></el-table-column>
                            </el-table>
                            <el-button slot="reference" type="text" @click="showWeeklyDailyReality(scope.row.id)">查看日结果</el-button>
                        </el-popover>
                    </template>
                </el-table-column>
                <el-table-column
                        prop="memo"
                        label="备注(50字)">
                </el-table-column>
                <!--            <el-table-column-->
                <!--                    prop="settle$"-->
                <!--                    label="进度">-->
                <!--            </el-table-column>-->
                <el-table-column
                        prop="oper"
                        fixed="right"
                        label="操作"
                        width="100">
                    <template slot-scope="scope">
                        <el-button @click="delWeekly(scope.row)" type="text" size="del-weekly">删除</el-button>
                    </template>
                </el-table-column>
            </el-table>
        </el-main>
    </div>
</div>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            tableData: [],
            weeklyDailyPlanData: [],
            weeklyDailyRealityData: [],
            dialogFormVisible: false,
            form: {
                name: '',
                region: '',
                date1: '',
                date2: '',
                delivery: false,
                type: [],
                resource: '',
                desc: ''
            },
            formLabelWidth: '120px',
            addWeekPlanVisible: false,
            addWeekPlanDataWeeklySign: [
                {
                    value: '1',
                    label: '上周'
                },
                {
                    value: '2',
                    label: '本周'
                },
                {
                    value: '3',
                    label: '下周'
                }
            ],
            addWeekPlanData: [],
            addWeekPlanValue: [],
            weeklyFormData: [],
            options: [],
            // 需要编辑的属性
            editProp: ['cstmrId','workContent','weeklyMatter','memo']
        },
        created(){
            this.init();
            this.getOptionsData();
            this.getAddWeekPlanData();
        },
        watch: {
<!-- 表格操作列 -->
<script type="text/html" id="tbLookPlan">
    <span class="layui-text">
        <a href="javascript:;" lay-event="lookPlan">
            <i class="layui-icon" style="font-size: 12px;">&#xe61a;</i> 查看日计划
        </a>
    </span>
</script>
        },
        computed:{
            // cstmrLabel () {
            //     return (val) => {
            //         let item = this.options.find(o => o.value === val);
            //         return item ? item.label : 'Item not found';
            //     }
            // }
        },
        methods: {
            init(){
                let that = this
                $.ajax({
                    url: baseUrl + '/weekly/list/auth',
                    headers: {'token': localStorage.getItem('token')},
                    method: "get",
                    success: (res) => {
                        that.tableData = res.data.records;
                        console.log(that.tableData)
                    }
                });
            },
            showWeeklyDailyPlan(id) {
                let that = this;
                // console.log(id)
                $.ajax({
                    url: baseUrl + '/weeklyDailyPlan/list/auth',
                    headers: {'token': localStorage.getItem('token')},
                    method: "get",
                    data: {
                        weekly_id: id
                    },
                    success: (res) => {
                        that.weeklyDailyPlanData = res.data.records;
                        // console.log(that.weeklyDailyPlanData)
                    }
                });
            },
            showWeeklyDailyReality(id) {
                let that = this;
                // console.log(id)
                $.ajax({
                    url: baseUrl + '/weeklyDailyReality/list/auth',
                    headers: {'token': localStorage.getItem('token')},
                    method: "get",
                    data: {
                        weekly_id: id
                    },
                    success: (res) => {
                        that.weeklyDailyRealityData = res.data.records;
                        // console.log(that.weeklyDailyRealityData)
                    }
                });
            },
            addWeekPlan() {
                this.addWeekPlanVisible = true;
            },
            addWeekly(res,isExpAdd){
                let that = this;
                let weeklyFormData = this.weeklyFormData;
<!-- 表格操作列 -->
<script type="text/html" id="tbLookReality">
    <span class="layui-text">
        <a href="javascript:;" lay-event="lookReality">
            <i class="layui-icon" style="font-size: 12px;">&#xe61a;</i> 查看日结果
        </a>
    </span>
</script>
                $.ajax({
                    url: baseUrl+"/weekly/from/" + (isExpAdd?"add":"modify") + "/auth",
                    headers: {'token': localStorage.getItem('token')},
                    data: JSON.stringify({
                        weeklyType: Number(res.name),
                        weeklyId: null,
                        // type: Number(data.field.type),
                        type: Number(1),
                        weeklyDailyPlanList: weeklyFormData
                    }),
                    contentType:'application/json;charset=UTF-8',
                    method: 'POST',
                    success: (res) => {
                        weeklyFormData=[]
                    },
                    error: function (jqXHR, textStatus, errorThrown) {
                        // 在这里做错误处理:
                        console.log('Error occurred: ', textStatus, errorThrown);
                    }
                })
            },
            addWeekPlanConfirm() {
                let list = this.weeklyFormData
                let value = this.addWeekPlanValue
                if (value.length > 0) {
                    value.forEach((item,idx) => {
                        // console.log(item)
                        list.push({
                            weeklyDay: item
                        })
                    })
                }
<script type="text/html" id="toolbar">
    <div class="layui-btn-container">
        <button class="layui-btn layui-btn-sm" lay-event="addBlank">创建周计划</button>
<!--        <button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="deleteData">删除</button>-->
    </div>
</script>
                this.weeklyFormData = list;
                this.addWeekPlanVisible = false;
                this.addWeekPlanValue = [];
            },
            delWeeklyPlan(row) {
                // 找到要删除的行在数据列表中的索引
                const index = this.weeklyFormData.findIndex(item => item === row);
                if (index !== -1) {
                    // 通过splice方法删除该行
                    this.weeklyFormData.splice(index, 1);
                }
            },
            delWeekly(row) {
                let that = this;
                // 找到要删除的行在数据列表中的索引
                const index = this.tableData.findIndex(item => item === row);
                $.ajax({
                    url: baseUrl+"/weekly/delete/auth",
                    headers: {'token': localStorage.getItem('token')},
                    data: {ids: row.id},
                    method: 'POST',
                    traditional:true,
                    success: function (res) {
                        console.log("res")
                        console.log(res)
                        if (res.code === 200){
                            if (index !== -1) {
                                // 通过splice方法删除该行
                                that.tableData.splice(index, 1);
                            }
                        }
                    }
                })
<form id="uploadFile" enctype="multipart/form-data" style="display: none;">
    <input type="file" name="file" id="uploadQuote">
    <input type="button" onclick="upload()" value="上传"/>
</form>
            },
            getOptionsData() {
                let that = this;
                $.ajax({
                    url: baseUrl+"/cstmr/all/get/kv",
                    headers: {'token': localStorage.getItem('token')},
                    data: {
                        limit: 9999
                    },
                    method: 'POST',
                    async: false, // 设置为同步执行
                    success: function (res) {
                        // let options1 = that.options;
                        that.options = res.data
                    }
                })
            },
            getAddWeekPlanData() {
                let that = this;
                $.ajax({
                    url: baseUrl+"/weeklyCostTypes/all/get/kv",
                    headers: {'token': localStorage.getItem('token')},
                    data: {
                        condition:null
                    },
                    method: 'POST',
                    success: function (res) {
                        // console.log("res")
                        // console.log(res)
                        that.addWeekPlanData = res.data
                        // console.log(that.addWeekPlanData)
<script type="text/html" id="operate">
    {{# if (d.settle == 1 && d.nowUserId == d.director) { }}
        <a class="layui-btn layui-btn-xs btn-edit" lay-event="approval">提交</a>
    {{# } }}
    {{# if (d.settle == 2 && d.nowUserId == d.director) { }}
        <a class="layui-btn layui-btn-xs btn-edit" lay-event="approval">审批</a>
    {{# } }}
    {{# if (d.settle == 3 && d.nowUserId == d.director) { }}
        <a class="layui-btn layui-btn-xs btn-edit" lay-event="approvalEnd">回退审批</a>
    {{# } }}
    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">计划</a>
    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="editReality">结果</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">删除</a>
                    }
                });
            }
        }
    })
</script>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/luckysheet_js/luckyexcel.umd.js"></script>
<script type="text/javascript" src="../../static/js/luckysheet_js/pako.es5.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/luckysheet_js/base64.min.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/weekly/weekly.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/layui/lay/modules/cascader/citys-data.js" charset="utf-8"></script>
<script type="text/html" id="editDialog">
    <form id="editForm" lay-filter="editForm" class="layui-form model-form">
        <input name="id" type="hidden"/>
        <div class="layui-form-item" style="display: block" id="weeklyDisplay">
            <label class="layui-form-label layui-form-required">日期: </label>
            <div class="layui-input-inline">
                <select class="layui-input" name="weeklyType" lay-vertype="tips">
                    <option style="display: none"></option>
                    <option value="1">上周</option>
                    <option value="2">本周</option>
                    <option value="3">下周</option>
                </select>
            </div>
        </div>
        <div class="layui-form-item" style="position: relative;">
            <label class="layui-form-label">周计划:</label>
            <div class="layui-input-block">
                <table id="formSSXMTable" lay-filter="formSSXMTable"></table>
            </div>
            <button class="layui-btn layui-btn-sm icon-btn" id="matAddBtnComment"
                    style="position: absolute; left: 20px;top: 60px;padding: 0 5px;" type="button">
                <i class="layui-icon">&#xe654;</i>添加日计划
            </button>
        </div>
        <div class="layui-form-item text-right">
            <button id="cancelBtn" class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
            <button class="layui-btn" lay-filter="weeklyEditSubmit" lay-submit>保存</button>
        </div>
    </form>
</script>
<!-- 表格操作列 -->
<script type="text/html" id="formSSXMTableBar">
    <!--    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a>-->
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<!-- 表单弹窗 -->
<script type="text/html" id="matEditDialog">
    <form id="matEditForm" lay-filter="matEditForm" class="layui-form model-form">
        <input name="experimentId" type="hidden"/>
        <div class="layui-form-item" style="float: left">
            <label class="layui-form-label">费用类型 - 多选</label>
            <div class="layui-input-block">
                <div id="weeklyCostTypes" name="weeklyCostTypes">
                </div>
            </div>
        </div>
        <div class="layui-form-item text-right" style="display: inline-block; margin-left: 35px">
            <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
            <button class="layui-btn" lay-filter="matEditSubmit" lay-submit>保存</button>
        </div>
    </form>
</script>
<script type="text/template" id="cstmrId">
    <select id="select-cstmr" style="width: 100%;color:rgba(0, 0, 0, 1) !important" class="layui-border select-cstmr" lay-ignore >
            <option value="" class="cstmrDetl">选择甲方单位</option>
<!--        style="width: 100%;color: rgba(0, 0, 0, 1)"-->
    </select>
</script>
</body>
</html>
</html>