Jquery 复选框点击生成标签 源代码

news2024/12/27 9:50:25

html

<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8">
	<title>服务资源管理</title>
	<link rel="stylesheet" type="text/css" href="../lib/layui/css/layui.css" />
	<link rel="stylesheet" type="text/css" href="../css/participation/serviceManage.css" />
	<script type="text/javascript" src="../lib/lib-jquery/jquery.min.js"></script>
	<script type="text/javascript" src="../lib/lib-jquery/jquery.cookie.js"></script>
	<script type="text/javascript" src="../lib/layer/layer.js"></script>
	<script type="text/javascript" src="../lib/layui/layui.js"></script>
	<script type="text/javascript" src="../lib/lib-jquery/jquery.cookie.js"></script>
	<script type="text/javascript" src="../lib/moment/moment.js"></script>
	<script type="text/javascript" src="../lib/layui/xm-select.js"></script>
</head>

<body>
	<!-- 服务资源管理123123 -->
	<div class="warning-container">
		<div id="indexWarningPage">
			<div class="search-content">
				<div class="search-content-top">
					<label for="searchKey">
						<input type="text" placeholder="请输入姓名" autocomplete="off" id="searchKey" class="search-input"
							lay-affix="clear" />
					</label>
					<label for="searchStatus">
						<select id="searchStatus" class="search-input">
							<option value="">请选择资源类型</option>
						</select>
					</label>
					<div style="cursor: pointer; color: #498fe5;display: inline-block;">
						<i class="layui-icon layui-icon-refresh" id="example-anim-element"></i>
						<span id="example-anim-usage">刷新表格</span>
					</div>
					<span style="margin-left: 100px;">共计 <span id="peopleNumber"
							style="color: #498fe5;font-size: 26px;">99+</span><span
							style="font-size: 22px;margin-left: 5px;">人</span></span>
					<div class="layui-form-item" id="searchTopBtns">
						<!-- <button type="button" class="layui-btn btnn" onclick="resetSearch()">重置</button> -->

						<button
							style="margin: 0px 10px;border-radius: 5px;height: 35px;line-height: 30px;font-size: 14px;padding: 0px 15px; background: #48AB6C;"
							type="button" class="layui-btn layui-btn-sm" onclick="searchBtn()">搜索</button>
					</div>
				</div>
			</div>
			<!-- 表格 -->
			<div class="progress-table" id="progress-bg">
				<div class="layui-table-box">
					<div class="layui-table-body layui-table-main">
						<table class="layui-table" lay-skin="line" lay-filter="checkTable" id="checkTable">
							<!-- 表格内容 -->
						</table>
					</div>
				</div>
				<div class="layui-inline" id="searchs">
					<button type="button" class="layui-btn btnnn" onclick="downloadProjectData()"
						style="border-radius: 4px;width: 100px;height: 30px;line-height: 30px;margin-left: 10px; background: #48AB6C;">下载数据</button>
				</div>
			</div>

		</div>


		<!-- 新增页面 -->
		<div class="add-project-layer" id="addProjectLayer">
			<form class="layui-form" id="addGoodsForm" lay-filter="form">
				<div class="edit-content">
					<div class="layui-form-item " id="nameWrite1" style="width:calc(100% - 55px)">
						<label class="layui-form-label"><span class="star">*</span>姓名:</label>
						<div class="layui-input-block">
							<input type="text" id="name" name="name" autocomplete="off" placeholder="请输入姓名"
								class="layui-input nameIput" />
						</div>
					</div>
					<div class="layui-form-item">
						<label class="layui-form-label"><span class="star">*</span>性别</label>
						<div style="margin-left: 130px;">
							<div class="layui-form" style="display: flex;">
								<div class="radio-item">
									<input type="radio" checked name="gender" value="0" title="男"
										class="necessary-radio" />
								</div>
								<div class="radio-item">
									<input type="radio" name="gender" value="1" title="女" class="necessary-radio" />
								</div>
							</div>
						</div>
					</div>
					<!-- <div class="layui-form-item ">
						<label class="layui-form-label">出生年月:<span class="star">*</span>:</label>
						<div class="layui-input-block">
							<input type="text" autocomplete="off" id="birthday" name="birthday" class="layui-input" />
						</div>
					</div> -->
					<div class="layui-form-item " style="width:calc(100% - 55px)">
						<label class="layui-form-label">出生年月:</label>
						<div class="layui-input-block">
							<input type="text" id="birthday" style="width: 230px;" name="birthday" autocomplete="off"
								placeholder="请输入出生年月" class="layui-input nameIput" />
							<i class="layui-icon layui-icon-date"
								style="font-size: 20px;position: absolute;top: 0px;right: 180px;"></i>
						</div>
					</div>
					<div class="layui-form-item " style="width:calc(100% - 55px)">
						<label class="layui-form-label"><span class="star">*</span>手机号码:</label>
						<div class="layui-input-block">
							<input type="text" id="phone" name="phone" autocomplete="off" placeholder="请输入手机号码"
								class="layui-input nameIput" />
						</div>
					</div>
					<div class="layui-form-item " style="width:calc(100% - 55px)">
						<label class="layui-form-label"><span class="star">*</span>身份证号:</label>
						<div class="layui-input-block">
							<input type="text" id="identityCard" name="identityCard" autocomplete="off"
								placeholder="请输入身份证号" class="layui-input nameIput" />
						</div>
					</div>
					<div class="layui-form-item " style="width:calc(100% - 55px)">
						<label class="layui-form-label">家庭住址:</label>
						<div class="layui-input-block">
							<input type="text" id="address" name="address" autocomplete="off"
								placeholder="xx路xx弄xx小区xx号xx楼xxx室" class="layui-input nameIput" />
						</div>
					</div>
					<div class="layui-form-item " style="width:calc(100% - 55px)">
						<label class="layui-form-label" for="searchStatus"><span class="star">*</span>政治面貌:</label>
						<div class="layui-input-block">
							<select id="politics" name="politics" class="search-input" style="width: 250px;"
								lay-filter="politics">
								<option value="">请选择政治面貌</option>
							</select>
						</div>
					</div>
					<div class="layui-form-item " style="width:calc(100% - 55px)">
						<label class="layui-form-label">工作单位:</label>
						<div class="layui-input-block">
							<input type="text" id="unit" name="unit" autocomplete="off" placeholder="请输入工作单位"
								class="layui-input nameIput" />
						</div>
					</div>
					<div class="layui-form-item " style="width:calc(100% - 55px)">
						<label class="layui-form-label" for="searchStatus"><span class="star">*</span>所属居(村)委:</label>
						<div class="layui-input-block">
							<select id="community" name="community" class="search-input" lay-filter="community">
								<option value="">请选择居(村)委</option>
							</select>
						</div>
					</div>
					<div class="layui-form-item " style="width:calc(100% - 55px)">
						<label class="layui-form-label" for="searchStatus">资源类型:</label>
						<div class="layui-input-block">
							<select id="typeName" name="typeName" class="search-input">
								<option value="">请选择资源类型</option>
							</select>
						</div>
					</div>
					<div class="layui-form-item">
						<label class="layui-form-label">是否有补助:</label>
						<div style="margin-left: 130px;">
							<div class="layui-form" style="display: flex;">
								<div class="radio-item">
									<input type="radio" checked name="hasSubsidy" value="true" title="是"
										class="necessary-radio" />
								</div>
								<div class="radio-item">
									<input type="radio" name="hasSubsidy" value="false" title="否"
										class="necessary-radio" />
								</div>
							</div>
						</div>
					</div>
					<div class="layui-form-item " style="width:calc(100% - 55px)">
						<label class="layui-form-label">补助金额:</label>
						<div class="layui-input-block">
							<input type="number" id="subsidy" name="subsidy" autocomplete="off" placeholder="请输入补助金额"
								class="layui-input nameIput" />
						</div>
					</div>
					<div class="layui-form-item " style="width:calc(100% - 55px)">
						<label class="layui-form-label">标签:</label>
						<div class="layui-input-block">
							<button class=" layui-btn layui-btn-primary layui-btn-xs layui-btn-radius"
								id="btnOpenDialog">
								<i class="layui-icon layui-icon-add-circle"></i>
								<span>新建标签</span>
							</button>
							<!-- 生成标签的地方 -->
							<span id="labelButton">

							</span>
						</div>
					</div>
				</div>
				<div class=" authority-btns">
					<button type="button" class="layui-btn layui-btn-primary" onclick="cancelProjectLayer()">取消</button>
					<button type="button" onclick="saveProjectBtn()" class="layui-btn layui-btn-normal"
						style="background: #48AB6C;">确认</button>
				</div>
			</form>

			<!-- 标签弹窗 -->
			<div id="dialogContent" style="display: none;">
				<div id="typeShowList">

				</div>
			</div>
		</div>


	</div>
</body>
<script type="text/html" id="zizeng">
    {{d.LAY_TABLE_INDEX+1}}
  </script>
<script type="text/javascript" src="../js/config.js"></script>
<script type="text/javascript" src="../js/common.js"></script>
<script type="text/javascript" src="../js/participation/serviceManage.js"></script>

</html>

 css

/* 最外部大盒子 */
.warning-container {
    padding: 0 10px;
    background-color: #fff;
    width: 96%;
    height: 95vh;
    margin-left: 1.5%;
    border-radius: 5px 5px;
    margin-top: 1.5%;
    overflow: auto;
}

/* 动画旋转 */
.layui-anim-rotate {
    animation: example-anim-rotate 1s linear infinite;
}

/* 隐藏单元格内的下拉框 */
.layui-table-grid-down {
  display: none !important;
}
@keyframes example-anim-rotate {
    0% {
        transform: rotate(0);
    }

    100% {
        transform: rotate(360deg);
    }
}

#addProjectLayer .layui-form-select {
    width: 230px !important;
}

/* 搜索 */
.search-content {
    width: 100%;
    height: 50px;
    padding-top: 5px;
    margin-bottom: 20px;
}

.search-content-top {
    /* float: left; */
    margin: 15px 0px 0px 0px;
}

/* 弹框 */
.edit-project-layer {
    display: none;
}

.search-input {
    width: 240px;
    display: inline-block;
    height: 35px;
    border-radius: 5px;
    border: 1px solid #ccc;
    padding-left: 10px;
    margin-right: 10px;
}

/* 新增编辑弹窗页面 */
.add-project-layer {
    padding-top: 10px;
    width: 100%;
    height: 97%;
    display: none;
}

.edit-project-layer .layui-input {
    width: 200px;
}

/* 驳回页面 */
.back-project-layer {
    width: 100%;
    height: 97%;
    display: none;
}

/* 新增编辑表单样式 */
.container {
    padding: 0 10px;
    background-color: #fff;
    width: 96%;
    height: 95vh;
    margin-left: 1.5%;
    border-radius: 5px 5px;
    margin-top: 1.5%;
    overflow: auto;
}

.layui-table-page {
    border-bottom: 1px solid #e6e5e5;
}

/* 分页旁边按钮*/
#progress-bg {
    position: relative;
}

#searchs {
    position: absolute;
    bottom: 7px;
    right: 15px;
}

/* 新增标签列表样式 */
.optionType {
    height: 34px !important;
    line-height: 34px;
    cursor: pointer;
}

.typeCheck {
    margin: 0px 10px;
    width: 16px;
    height: 16px;
    position: relative;
    top: 3.5px;
}

.optionType:hover {
    background-color: #eee;
}

/* 表格换行 */
.layui-table-cell {
    height: auto;
    white-space: normal;
    word-wrap: break-word;
    text-align: center !important;
}

#dialogContent .layui-layer-content {
    position: relative;
}

.typeStyle {
    padding: 1px !important;
    height: 25px !important;
    width: 70px !important;
}

#dialogContent {
    position: absolute;
    width: 200px;
    background-color: #ffffff;
    top: 425px;
    left: 155px;
    border: 1px solid #e2e2e2;
    height: 202px;
    overflow: hidden;
    overflow-y: scroll;
    box-shadow: 0 0 25px 10px #E7E7E7;
}

#addProjectLayer .layui-layer-content {
    position: relative;
}

/* .layui-form-select-layer {
    background-color: #f0f0f0 !important;
    height: 50px !important;
    border-radius: 10px !important;
    border: 1px solid #ccc !important;
} */

/* 自定义选项样式 */
.layui-form-select-layer .custom-option {
    background-color: #f0f0f0 !important;
    color: #333333 !important;
    font-size: 14px !important;
    border: 1px solid #cccccc !important;
}

/* 鼠标悬停时的样式 */
.layui-form-select-layer .custom-option:hover {
    background-color: #cccccc !important;
    color: #ffffff !important;
}


.progress-materials,
.progress-materials-file {
    width: 100%;
    height: calc(100% - 50px);
    overflow: auto;
}

/* ----------------------------------- */
::-webkit-scrollbar {
    width: 5px;
    height: 10px;
}

::-webkit-scrollbar-thumb {
    border-radius: 10px;
    -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
    background: #CBB486;
}

::-webkit-scrollbar-track {
    -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
    border-radius: 10px;
    background: #EDEDED;
}

.overview-main {
    padding: 0 10px;
    background-color: #fff;
    width: 96%;
    height: 95vh;
    margin-left: 1.5%;
    border-radius: 5px 5px;
    margin-top: 1.5%;
    overflow: auto;
}

.overview-top {
    color: #7F838A;
    font-weight: bold;
}

.overview-box {
    width: 100%;
    height: 97%;
    padding-top: 10px;
}

.overview-box2 {
    width: 80%;
    height: 97%;
    margin-left: 10%;
}

.box-top {
    width: 100%;
    height: 48%;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.box-bottom {
    width: 100%;
    height: 48%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 2%;
}

.layui-table,
.layui-table-view {
    margin: 0 !important;
}

.card {
    width: 100%;
    height: 100%;
}

.top-title {
    width: 80%;
    height: 5%;
    border-bottom: 2px #CBB486 solid;
    margin-left: 10%;
    text-align: center;
    line-height: 40px;
}

.layui-input {
    background: #FFFFFF;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 4px;
    height: 35px;
    padding-left: 4px;
    font-size: 14px;
}

.layui-form-label {
    font-weight: bold;
    margin-left: 30px;
    text-align: left !important;
    width: 90px !important;
}

#searchTopBtns {
    display: inline;
    float: right;
}


.operation-item {
    height: 30px;
    line-height: 40px;
    cursor: pointer;
}

.authority-btns {
    width: 100%;
    background-color: white;
    position: sticky;
    bottom: 0px;
    padding: 15px 0px;
    text-align: center;
}


.edit-content>.title {
    font-size: 16px;
    height: 40px;
    line-height: 40px;
    border-bottom: 1px solid #DCDFE6;
    margin-bottom: 15px;
}

.edit-content .layui-form-item {
    width: 45%;
    display: inline-block;
    margin-left: 25px;
    vertical-align: bottom;
}

.edit-content .layui-form-item>label {
    color: #6E798C;
    text-align: left !important;
    /* width: 135px !important; */
    padding: 9px 0px;
}

.edit-content .layui-input-block {
    margin-left: 130px !important;
    line-height: 38px !important;
    width: 400px;
}

.edit-content .layui-form-item .layui-input {
    border-radius: 5px;
}

.star {
    color: red;
}

.no-change {
    border: 0px;
    pointer-events: none;
    background-color: #EDEDED;
}

.no-change-echo {
    border-bottom: 1px solid #474647;
    border-top: 0px;
    border-left: 0px;
    border-right: 0px;
    border-radius: 0px;
    pointer-events: none;
}
.layui-laypage .layui-laypage-curr .layui-laypage-em {
    background-color: #48AB6C !important;
}
.layui-table-grid-down {
    display: none !important;
}

js

// 服务资源管理
$(function () {
    verifyToken();
    authorityEvent();
    initCheckTable()
    getTypeList()
    // 获取社区 居委标签
    getCommunityAndNeighborhood()
    // 获取政治面貌
    getPoliticsList()
})

// 权限
var authorityContent = "";
function authorityEvent() {
    authorityContent = getUserRole();
    if (authorityContent.indexOf(GRADEB) != -1) {
        $("#searchTopBtns").append(
            '<button style="margin: 0px 10px;border-radius: 5px;height: 35px;line-height: 30px;font-size: 14px;padding: 0px 15px;background: #48AB6C;"' +
            'type="button" class="layui-btn layui-btn-normal layui-btn-sm" onclick="addBtn()" >添加资源</button>');
    }
}

// 获取后台返回的ID与对应文字的映射关系,保存在一个对象中
var projectTypeMap = {};
// // 获取 居委标签
function getCommunityAndNeighborhood() {
    $.ajax({
        type: "get",
        url: getCommunityList,
        async: false,
        headers: {
            'dm-authorize-token': $.cookie("token"),
        },
        data: {
        },
        success: function (res) {
            if (res.code == 200) {
                // console.log(res);
                for (var i = 0; i < res.data.length; i++) {
                    $("#community").append('<option value="' + res.data[i].id + '" label="' + res.data[i].name + '">' + res.data[i].name + '</option>');
                    let id = res.data[i].id;
                    let text = res.data[i].name;
                    projectTypeMap[id] = text;
                }
            } else {
                layer.msg(res.msg);
            }
        },
        error: function (res) {
            layer.msg(res.msg);
        }
    });
}
// 获取政治面貌列表
function getPoliticsList() {
    $.ajax({
        type: "get",
        url: getPolitics,
        async: false,
        headers: {
            'dm-authorize-token': $.cookie("token"),
        },
        data: {
        },
        success: function (res) {
            if (res.code == 200) {
                // console.log(res);
                for (var i = 0; i < res.data.length; i++) {
                    $("#politics").append('<option value="' + res.data[i].id + '" label="' + res.data[i].name + '">' + res.data[i].name + '</option>');
                }
            } else {
                layer.msg(res.msg);
            }
        },
        error: function (res) {
            layer.msg(res.msg);
        }
    });
}

// 获取人员标签
var selectedData = []; //默认空数据
function getShowList() {
    $.ajax({
        type: "get",
        url: getPeopleTagList,
        async: false,
        headers: {
            'dm-authorize-token': $.cookie("token"),
        },
        data: {
            pageSize: 1000000000,
            pageNum: 1
        },
        success: function (res) {
            if (res.code == 200) {
                // console.log('人员标签', res);
                $('#typeShowList').empty();
                // 遍历数据并展示
                for (var i = 0; i < res.data.data.length; i++) {
                    var item = res.data.data[i];
                    var checkboxId = 'checkbox' + i;

                    // 创建多选框和名称展示
                    var checkbox = $('<input type="checkbox" class="typeCheck" id="' + checkboxId + '">');
                    var nameSpan = $('<span>' + item.name + '</span>');

                    // 监听多选框的点击事件
                    // checkbox.click(function () {
                    //     // 在这里可以根据需要处理多选框的状态变化
                    //     selectedData = [];
                    //     // 遍历所有选中的复选框
                    //     $('.typeCheck:checked').each(function () {
                    //         var checkboxId = $(this).attr('id');
                    //         var dataIndex = parseInt(checkboxId.replace('checkbox', ''));
                    //         var selectedItem = res.data.data[dataIndex];
                    //         $('#labelButton').empty();
                    //         // 将选中的数据项添加到选中数据数组中
                    //         selectedData.push(selectedItem);
                    //     });
                    //     // 输出选中的数据
                    //     if (selectedData != [] && selectedData) {
                    //         for (var i = 0; i < selectedData.length; i++) {
                    //             $("#labelButton").append('<button type="button" style="background-color:' + selectedData[i].color + '" class="layui-btn layui-btn-xs layui-btn-radius">' + selectedData[i].name + '</button>');
                    //         }
                    //     }
                    //     // console.log(selectedData);
                    // });

                    checkbox.click(function () {
                        // 在这里可以根据需要处理多选框的状态变化
                        selectedData = [];
                        // 遍历所有选中的复选框
                        $('.typeCheck:checked').each(function () {
                            var checkboxId = $(this).attr('id');
                            var dataIndex = parseInt(checkboxId.replace('checkbox', ''));
                            var selectedItem = res.data.data[dataIndex];
                            $('#labelButton').empty();
                            // 将选中的数据项添加到选中数据数组中
                            selectedData.push(selectedItem);
                        });
                        // 输出选中的数据
                        if (selectedData.length > 0) {
                            for (var i = 0; i < selectedData.length; i++) {
                                $("#labelButton").append('<button type="button" style="background-color:' + selectedData[i].color + '" class="layui-btn layui-btn-xs layui-btn-radius">' + selectedData[i].name + '</button>');
                            }
                        }
                        // console.log(selectedData);
                        if (!$(this).prop('checked')) {
                            // 取消勾选时移除对应的数据项
                            var checkboxId = $(this).attr('id');
                            var dataIndex = parseInt(checkboxId.replace('checkbox', ''));
                            var deselectedItem = res.data.data[dataIndex];
                            var deselectedIndex = selectedData.findIndex(function (selectedItem) {
                                return selectedItem.id === deselectedItem.id;
                            });
                            if (deselectedIndex !== -1) {
                                selectedData.splice(deselectedIndex, 1);
                            }
                            $('#labelButton').empty();
                            for (var i = 0; i < selectedData.length; i++) {
                                $("#labelButton").append('<button type="button" style="background-color:' + selectedData[i].color + '" class="layui-btn layui-btn-xs layui-btn-radius">' + selectedData[i].name + '</button>');
                            }
                        }
                    });

                    // 创建数据项容器,并将多选框和名称展示添加进去
                    var itemContainer = $('<div class="optionType"></div>');
                    itemContainer.append(checkbox, nameSpan);
                    // 将数据项容器添加到数据容器中
                    $('#typeShowList').append(itemContainer);
                    // 判断当前项是否为回显数据,并设置选中状态
                    if (selectedData.find(function (selectedItem) {
                        return selectedItem.id === item.id;
                    })) {
                        checkbox.prop('checked', true);
                    }
                }
            } else {
                layer.msg(res.msg);
            }
        },
        error: function (res) {
            layer.msg(res.msg);
        }
    });
}


// 获取服务资源类型列表 
function getTypeList() {
    $.ajax({
        type: "get",
        url: getserviceResourcesTypeList,
        async: false,
        headers: {
            'dm-authorize-token': $.cookie("token"),
        },
        data: {
            // id: data.id,
        },
        success: function (res) {
            if (res.code == 200) {
                for (var i = 0; i < res.data.length; i++) {
                    $("#searchStatus").append('<option value="' + res.data[i].id + '" label="' + res.data[i].name + '">' + res.data[i].name + '</option>');
                    $("#typeName").append('<option value="' + res.data[i].id + '" label="' + res.data[i].name + '">' + res.data[i].name + '</option>');
                }
            } else {
                layer.msg(res.msg);
            }
        },
        error: function (res) {
            layer.msg(res.msg);
        }
    });
}
function initCheckTable() {
    layui.use(['table', 'form'], function () {
        var table = layui.table;
        form = layui.form;
        var token = $.cookie("token");
        var name = $("#searchKey").val();
        var status = $("#searchStatus").val();

        var colsList = [
            { field: 'zizeng', width: 58, title: '序号', templet: "#zizeng", },
            { field: 'name', title: '姓名' },
            {
                field: 'gender', width: 58, title: '姓别',
                templet: function (d) {
                    return d.gender == '0' ? d.gender = '男' : d.gender = '女';
                }
            },
            { field: 'phone', title: '电话' },
            { field: 'identityCard', title: '身份号' },
            { field: 'address', title: '家庭住址' },
            // { field: 'communityName', title: '所属社区' },
            {
                field: 'community', title: '所属居委', templet: function (d) {
                    var typeId = d.community;
                    return projectTypeMap[typeId] || ''; // 如果找不到对应的文字内容,返回空字符串
                }
            },
            { field: 'typeName', title: '服务资源类型' },
            {
                field: 'tags', title: '标签', templet: function (d) {
                    var html = '';
                    for (var i = 0; i < d.tags.length; i++) {
                        html += '<button type="button" style="background-color:' + d.tags[i].color + '" class="layui-btn layui-btn-xs layui-btn-radius tableLabel">' + d.tags[i].name + '</button>'
                    }
                    return html
                }
            }];

        if (authorityContent.indexOf(GRADEB) != -1) {
            colsList.push({
                field: 'wealth', title: '操作', align: 'center', fixed: 'right',
                templet: function (item) {
                    return '<span style="margin:0px 5px; color:#498fe5;cursor: pointer;" lay-event="updata" >编辑</span>' +
                        '<a style="margin:0px 5px; color:#498fe5;cursor: pointer;" lay-event="delete">删除</a>';
                }
            })
        }


        table.render({
            url: serviceResources,
            headers: {
                "dm-authorize-token": token,
            },
            where: {
                name: name,
                type: status,
            },
            elem: '#checkTable',
            page: true,
            cols: [colsList],
            height: 'full-150',
            limit: 10,
            even: true,
            page: true,
            response: {
                statusCode: 200
            },
            request: {
                pageName: "pageNum",
                limitName: "pageSize"
            },
            parseData: function (res) {
                // console.log(res);
                $('#peopleNumber').html(res.data.count)
                return {
                    "code": res.code,
                    "msg": res.msg,
                    "count": res.data.count,
                    "data": res.data.data,
                };
            },
            done: function (res, curr, count) {

            },
        });
        // 监听按钮点击事件
        let ONOFF = true;
        $('#btnOpenDialog').click(function () {
            event.preventDefault(); // 阻止默认行为
            if (ONOFF) {
                $('#dialogContent').show()
                ONOFF = false;
            } else {
                $('#dialogContent').hide()
                ONOFF = true;
            }
            getShowList()
        });

        // 绑定点击事件
        table.on('tool(checkTable)', function (obj) {
            var data = obj.data;//获得当前行数据
            var layEvent = obj.event; 获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
            if (obj.event === 'updata') {
                $.ajax({
                    type: "get",
                    url: serviceDetail + '/' + data.id,
                    async: false,
                    headers: {
                        'dm-authorize-token': $.cookie("token"),
                    },
                    data: {
                        id: data.id,
                    },
                    success: function (e) {
                        if (e.code == 200) {
                            // console.log('编辑数据', e);
                            // 赋予编辑id
                            editProjectId = e.data.id
                            addBtn(true, e.data)
                        } else {
                            layer.msg(e.msg);
                        }
                    },
                    error: function (e) {
                        layer.msg(e.msg);
                    }
                });
            } else if (obj.event === 'delete') {
                layer.confirm('您确认删除数据吗?删除后无法恢复',
                    { icon: 3, title: '删除信息提示' },
                    function (index) {
                        layer.close(index);
                        // 删除执行的操作
                        $.ajax({
                            type: "post",
                            url: deleteServiceResources + '/' + data.id,
                            async: false,
                            headers: {
                                'dm-authorize-token': $.cookie("token"),
                            },
                            data: {
                                id: data.id,
                            },
                            success: function (e) {
                                if (e.code == 200) {
                                    layer.msg("操作成功");
                                    initCheckTable();
                                } else {
                                    layer.msg(e.msg);
                                }
                            },
                            error: function (e) {
                                layer.msg(e.msg);
                            }
                        });
                    });
            }
        });
        // 监听下拉框事件
        // 监听 select 事件
        // form.on('select(community)', function (data) {
        //     var fatherID = data.value; // 获取选中的值
        //     var text = data.elem[data.elem.selectedIndex].text; // 获取选中的文本
        //     console.log(fatherID, text);
        //     if (fatherID != '' && fatherID) {
        //         $.ajax({
        //             type: "get",
        //             url: getNeighborhood,
        //             async: false,
        //             headers: {
        //                 'dm-authorize-token': $.cookie("token"),
        //             },
        //             data: {
        //                 id: fatherID
        //             },
        //             success: function (res) {
        //                 // 获取后面子项下拉框的选择器
        //                 var $villageCommittee = $('#villageCommittee');
        //                 // 清空后面子项下拉框的选项
        //                 $villageCommittee.empty();
        //                 if (res.code == 200) {
        //                     for (var i = 0; i < res.data.length; i++) {
        //                         $("#villageCommittee").append('<option value="' + res.data[i].id + '" label="' + res.data[i].name + '">' + res.data[i].name + '</option>');
        //                     }
        //                     form.render('select');
        //                 } else {
        //                     layer.msg(res.msg);
        //                 }
        //             },
        //             error: function (res) {
        //                 layer.msg(res.msg);
        //             }
        //         });
        //     }
        // });

    });
}
// 新增编辑
function addBtn(type, data) {
    layer.closeAll("tips");
    // 标题
    var title = "新增资源";
    editProjectId = ''
    if (type) {
        title = "编辑资源";
        editProjectId = data.id
    }
    layer.open({
        type: 1,
        area: ["680px", "640px"],
        title: title,
        content: $("#addProjectLayer"),
        resize: false,
        cancel: function () {
            cancelProjectLayer()
        },
        success: function (layero, index_0) {
            if (type) {
                $("#name").addClass("no-change");
                $("input[name='gender'][value='" + data.gender + "']").prop("checked", "checked");
                $("input[name='hasSubsidy'][value='" + data.hasSubsidy + "']").prop("checked", "checked");
                // 数据回显
                form.val("form", {
                    "name": data.name,
                    "phone": data.phone,
                    "identityCard": data.identityCard,
                    "address": data.address,
                    // 户籍地址
                    // "huJiAddress": data.domicileAddress,
                    "community": data.community,
                    // "villageCommittee": data.villageCommittee,
                    "typeName": data.type,
                    "subsidy": data.subsidy,
                    "birthday": data.birthday,
                    "politics": data.politics,
                    "unit": data.unit,
                })
                // 输出选中的数据
                if (data.tags != [] && data.tags) {
                    selectedData = data.tags
                    for (var i = 0; i < data.tags.length; i++) {
                        $("#labelButton").append('<div style="background-color:' + data.tags[i].color + '" class="layui-btn layui-btn-xs layui-btn-radius typeStyle">' + data.tags[i].name + '</div>');
                    }
                }
            } else {
                $('#labelButton').empty();
                $("#name").removeClass("no-change");
                $("input[name='gender'][value='0']").prop("checked", "checked");
                $("input[name='hasSubsidy'][value='true']").prop("checked", "checked");
                initTimeEvent()
            }
        },
    });
}

// 搜索
function searchBtn() {
    initCheckTable()
}
// 刷新表格动画
$('#example-anim-usage').on('click', function () { // 获取当前图标元素 
    var icon = $('#example-anim-element'); // 添加旋转类 
    icon.addClass('layui-anim layui-anim-rotate layui-anim-loop'); // 模拟请求延迟
    cancelProjectLayer()
    layer.msg('刷新成功');
    setTimeout(function () { // 移除旋转类
        icon.removeClass('layui-anim layui-anim-rotate layui-anim-loop');
    }, 1000);
});
// 上传
layui.use(function () {
    var upload = layui.upload;
    var $ = layui.$;
    // 渲染
    upload.render({
        elem: '#ID-upload-demo-drag',
        url: 'https://httpbin.org/post', // 此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。
        done: function (res) {
            layer.msg('上传成功');
            $('#ID-upload-demo-preview').removeClass('layui-hide')
                .find('img').attr('src', res.files.file);
        }
    });
});

// 日期
function initTimeEvent() {
    layui.use(['laydate'], function () {
        var laydate = layui.laydate;
        // var nowTime = new moment().format("yyyy-MM-DD");
        laydate.render({
            elem: '#birthday',
            trigger: 'click',
            value: '',
            format: 'yyyy-MM-dd', //设置日期格式
            // min: 'string', //设置最小值
            done: function (value, date) {

            }
        });
    });
}
// 取消
function cancelProjectLayer() {
    $("input[name='gender'][value='0']").prop("checked", "checked");
    $("input[name='hasSubsidy'][value='true']").prop("checked", "checked");
    // 清空表单 (“addGoodsForm”是表单的id)
    $("#addGoodsForm")[0].reset();
    layui.form.render();
    // 清空编辑id
    editProjectId = ''
    // 关闭标签弹窗
    $('#dialogContent').hide()
    // 清空标题数组
    $('#labelButton').empty();
    selectedData = []
    layer.closeAll()
    $("#searchKey").val('');
    $("#searchStatus").val('');
    initCheckTable()
}
// 确认退回
function quRenProjectBtn() {
    var backProjectContent = $("#backProjectContent").val()
    if (backProjectContent == "" || backProjectContent == null) {
        return layer.msg("退回理由不能为空");
    }
    cancelProjectLayer()
}

// 保存
function saveProjectBtn() {
    var name = $("#name").val();
    var gender = $('input[name="gender"]:checked').val()//获取选中的值;
    var phone = $("#phone").val();
    var identityCard = $("#identityCard").val();
    var address = $("#address").val();
    var community = $("#community").val();
    var typeName = $("#typeName").val();
    var hasSubsidy = $('input[name="hasSubsidy"]:checked').val();
    var subsidy = $("#subsidy").val();
    var birthday = $("#birthday").val();
    var politics = $("#politics").val();
    var unit = $("#unit").val();

    if (name == "" || name == null) {
        return layer.msg("姓名不能为空");
    }
    if (gender == "" || gender == null) {
        return layer.msg("性别不能为空");
    }
    if (community == "" || community == null) {
        return layer.msg("所属居(村)委不能为空");
    }
    if (phone == "" || phone == null) {
        return layer.msg("手机号不能为空");
    }
    if (identityCard == "" || identityCard == null) {
        return layer.msg("身份证号不能为空");
    }
    if (politics == "" || politics == null) {
        return layer.msg("政治面貌不能为空");
    }


    var url = addServiceResources;
    var msg = ('添加成功');
    var serviceResource = {
        name: name,
        gender: gender,
        phone: phone,
        identityCard: identityCard,
        address: address,
        birthday: birthday,
        politics: politics,
        unit: unit,
        community: community,
        type: typeName,
        hasSubsidy: hasSubsidy,
        subsidy: subsidy,
        tags: selectedData,
    };
    if (editProjectId != "" && editProjectId != null) {
        url = editServiceResources;
        msg = ('修改成功');
        serviceResource = {
            name: name,
            gender: gender,
            phone: phone,
            identityCard: identityCard,
            address: address,
            community: community,
            birthday: birthday,
            politics: politics,
            unit: unit,
            type: typeName,
            hasSubsidy: hasSubsidy,
            subsidy: subsidy,
            tags: selectedData,
            id: editProjectId
        };
    }
    // console.log(serviceResource);
    $.ajax({
        type: "post",
        url: url,
        async: false,
        headers: {
            'Content-Type': 'application/json',
            'dm-authorize-token': $.cookie("token"),
        },
        data: JSON.stringify(serviceResource),
        success: function (e) {
            if (e.code == 200) {
                cancelProjectLayer();
                setTimeout(function () {
                    layer.msg(msg);
                }, 300)
            } else {
                layer.msg(e.msg);
            }
        },
        error: function (e) {
            layer.msg(e.msg);
        }
    });
}

//导出数据
function downloadProjectData(data) {
    var name = $("#searchKey").val();
    var type = $("#searchStatus").val();
    var requestOptions = {
        method: 'get',
        headers: {
            'dm-authorize-token': $.cookie("token"),
        },
    };
    layer.confirm('您确定导出现在表中的数据吗?',
        { icon: 3, title: '导出提示' },
        function (index) {
            layer.close(index);
            fetch(
                exportServiceResources + "?name=" + name + "&type=" + type,
                requestOptions
            )
                .then((response) => {
                    return response.blob();
                })
                .then((res) => {
                    const link = document.createElement('a');
                    let blob = new Blob([res], {
                        type:
                            ".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel'",
                    });
                    link.href = URL.createObjectURL(blob);
                    link.download = `服务资源数据.xlsx`;
                    link.click();
                })
                .catch((error) => console.log('error', error))
                .finally(() => {
                    this.submitLoading = true;
                });
        })
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/880361.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从零搭建vue + element-plus 项目

目录 从零搭建vue element-plus 项目 环境安装 安装项目 安装命令如下&#xff1a; 选择配置如下&#xff1a; 安装插件与启动服务 安装element框架 使用element框架 测试element是否安装成功 环境判断 安装插件 使用插件 配置变量 暴漏变量 测试…

菜单和内容滚动的联动原理及代码

之前写代码有个需求&#xff1a;左侧是一个菜单&#xff0c;右边是内容&#xff0c;点击左侧菜单右边内容滚动到对应位置&#xff0c;右边内容滚动到某位置时&#xff0c;左侧菜单也会选中对应的菜单项。UI如下&#xff1a;这是大多网站的移动端都会有的需求。 解决方案一&…

Presto之Union算子的实现

一. 前言 在Presto中&#xff0c;Union的算子包括自动去重的Union操作和不去重的Union All操作。本文主要简述在Presto中Union All算子是如何实现和Union算子中是如何实现数据去重的。 二. Presto之Union的实现 1. 首先在g4中将sql的union关键词与setOperation进行绑定 2. AstB…

css 利用 linear-gradient 实现条纹背景

1. 水平条纹背景 当给背景设置渐变效果时&#xff0c;默认的渐变方向是垂直由上到下的&#xff0c;效果如下&#xff1a; {background: linear-gradient(#aaa, #ddd);} 尝试拉近色标的距离&#xff0c;会发现渐变区域变小了&#xff1a; {background: linear-gradient(#aaa 40…

Spring Security6 最新版配置该怎么写,该如何实现动态权限管理

Spring Security 在最近几个版本中配置的写法都有一些变化&#xff0c;很多常见的方法都废弃了&#xff0c;并且将在未来的 Spring Security7 中移除&#xff0c;因此又补充了一些新的内容&#xff0c;重新发一下&#xff0c;供各位使用 Spring Security 的小伙伴们参考。 接下…

Android控件【Notification】

文章目录 Notification与NotifactionManager创建一个NotificationManager使用Builder构造器来创建Notification对象 NotificationChannel通知重要程度设置&#xff0c;NotificationManager类中 Notification&#xff08;通知&#xff09;常见方法说明注意项目结构主要代码 Noti…

国产DSP,经典之作,C2000,QX320F280049

特性&#xff1a; 1、替代TI 的 TMS320F280049 2、独立双核&#xff0c;主频400MHz 3、单精度浮点运算&#xff0c;三角函数运算 4、Flash 1MB&#xff0c;SRAM 1MB 5、12bit ADC&#xff0c;采样率 3.45MSPS 6、16个高分辨率 ePWM 优点&#xff1a; 1、主频400MHz&#xff0c…

clion2020.3配置clang-format

标题clion 启用clang-format 文件->设置->编辑器->代码样式. 为了保持原有代码风格不变&#xff0c;可以把原始的配置风格先导出&#xff0c;最好直接保存到自己的工程下&#xff0c;.clang-format是隐藏文件&#xff0c;需要用ctrlH才能看到 文件->设置->编辑…

i++和++i在操作数栈和局部变量表的分配

1、执行运算指令时&#xff0c;压入操作数栈的顺序不受运算优先级影响 2、i 先将i值压入到操作数栈&#xff0c;再在局部变量表自增 3、i 先在局部变量表自增&#xff0c;再压入到操作数栈 记忆方法&#xff1a;i的先后&#xff0c;表示压入操作数栈的先后。 看如下例子&am…

从零实战SLAM-第七课(多视角几何)

在七月算法报的班&#xff0c;老师讲的蛮好。好记性不如烂笔头&#xff0c;关键内容还是记录一下吧&#xff0c;课程入口&#xff0c;感兴趣的同学可以学习一下。 --------------------------------------------------------------------------------------------------------…

Centos7 开机时遇到initramfs-xxx.img not found错误导致虚拟机无法开启问题处理

1、背景 一台运行在Esxi上面的VM重启后报initramfs-xxx.img not found错误。 按任意键后出现以下错误。 之前在运维Centos7的时候解决过Kernel panic - not syncing : VFS: Unable to mount root fs on unknown-block(0.0)错误&#xff0c;以为按照之前的解决方案&#xff0c;…

【删除vlan的方法】

提示错误 [SW1]undo vlan 10 Error: The VLAN has a L3 interface. Please delete it first. 解决办法 undo interface Vlanif10 #删除vlan 10下的接口 [SW1-GigabitEthernet0/0/1]dis this #删除下列的IP

vue3+ts使用antv/x6 + 自定义节点

使用 2.x 版本 x6.antv 新官网: 安装 npm install antv/x6 //"antv/x6": "^2.1.6",项目结构 1、初始化画布 index.vue <template><div id"container"></div> </template><script setup langts> import { onM…

从鲁大师十五年,寻找软件的生存法则

千禧之年&#xff0c;国内互联网用户数量首次突破1000万大关&#xff0c;互联网的腾飞正式拉开序幕。 从彼时算起&#xff0c;中国互联网发展也不过23年&#xff0c;而我们记忆中那个摇着蒲扇的老头&#xff0c;却占据了其中关键的十五年。 这十五年中有太多曾经为人熟知的软件…

超强的Everything,吊打系统自带文件搜索功能!

目录 一、软件简介 二、软件下载 三、软件说明 一、软件简介 Everything是一款由David OReilly开发的电脑搜索软件&#xff0c;它可以帮助用户快速找到电脑上的文件和文件夹。与其他搜索工具不同的是&#xff0c;Everything使用了一种非常快速和高效的搜索算法&#xff0c…

小视频AI智能分析系统解决方案

2022下半年一个项目&#xff0c;我司研发一个基于接收小视频录像文件和图片进行算法分析抓拍的系统&#xff0c;整理了一下主要思想如下&#xff1a; 采用C开发一个AI识别服务&#xff0c;该服务具有如下功能: 创建各类算法模型服务引擎池&#xff0c;每类池内可加载多个模型…

vue自定义指令--动态参数绑定

在企业微信侧边栏应用中&#xff0c;给dialog添加了拖拽功能&#xff0c;但是因为dialog高度超过了页面高度&#xff0c;所以高度100%时拖拽有个bug--自动贴到窗口顶部而且企业侧边栏宽高都有限制&#xff0c;拖拽效果并不理想&#xff0c;所以就想缩小dialog再进行拖拽。 拖拽…

全网最新超详细的C盘扩容(2023年),比如把D盘内存分给C盘

文章目录 1. 引入问题2. 磁盘分区3. 磁盘扩容4. 使用DiskGenius的注意事项 1. 引入问题 今天打开电脑&#xff0c;发现C盘爆红&#xff0c;如下图所示&#xff1a; 此时&#xff0c;我就知道需要扩容。 2. 磁盘分区 我们在扩容C盘的前提&#xff0c;需要寻找其他可用空间较多…

金蝶软件实现Excel数据复制分录信息粘贴到单据体分录行中

>>>适合KIS云专业版V16.0|KIS云旗舰版V7.0|K/3 WISE 14.0等版本<<< 实现Excel数据复制分录信息粘贴到金蝶单据体分录中,在采购订单|采购入库单|销售订单|销售出库单等类型单据中,以少量的必要字段在excel表格中按模板填列好,很方便快捷地复制到金蝶单据表体…

导出微信好友,批量加好友、导出微信群员信息

下面的代码基于千寻框架&#xff0c;都测试过了&#xff0c;都能正常使用。 需要项目代码或者千寻框架的可以加我V&#xff1a;iostreamX64 注意&#xff1a;批量加好友的时候记得设置个时间间隔&#xff0c;加好友太频繁微信会被封的。 导出微信群员信息 import pandas as…