From 2791faebdbc5e96e1f2db1ec9909401a913451fc Mon Sep 17 00:00:00 2001
From: wtt <1985833171@qq.com>
Date: 星期五, 09 八月 2024 17:08:36 +0800
Subject: [PATCH] 客户供应商分类
---
WebTM/views/基础资料/销售基础资料/Gy_Customer.html | 153 ++++++++++++++++++++++++++++--
WebTM/views/基础资料/采购基础资料/Gy_Supplier.html | 144 ++++++++++++++++++++++++++--
2 files changed, 272 insertions(+), 25 deletions(-)
diff --git "a/WebTM/views/\345\237\272\347\241\200\350\265\204\346\226\231/\351\207\207\350\264\255\345\237\272\347\241\200\350\265\204\346\226\231/Gy_Supplier.html" "b/WebTM/views/\345\237\272\347\241\200\350\265\204\346\226\231/\351\207\207\350\264\255\345\237\272\347\241\200\350\265\204\346\226\231/Gy_Supplier.html"
index 107778b..2b2fb3c 100644
--- "a/WebTM/views/\345\237\272\347\241\200\350\265\204\346\226\231/\351\207\207\350\264\255\345\237\272\347\241\200\350\265\204\346\226\231/Gy_Supplier.html"
+++ "b/WebTM/views/\345\237\272\347\241\200\350\265\204\346\226\231/\351\207\207\350\264\255\345\237\272\347\241\200\350\265\204\346\226\231/Gy_Supplier.html"
@@ -8,16 +8,20 @@
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
- <script src="../../../layuiadmin/layui/layui.js"></script>
+ <!--<script src="../../../layuiadmin/layui/layui.js"></script>-->
<script src="../../../layuiadmin/HideButton.js"></script>
-
+ <script src="../../../layuiadmin/layui/layui.js"></script>
+ <script src="../../../layuiadmin/Scripts/json2.js"></script>
+ <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
+ <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
+ <script src="../../../layuiadmin/layui/layui1.js"></script>
+ <script src="../../../layuiadmin/layui/lay/modules/table.js"></script>
</head>
<body>
<div class="layui-fluid">
<div class="layui-col-md12">
<div class="layui-card" style="padding: 1px">
<div class="layui-card-body" style="padding: 1px;">
-
<form class="layui-form" action="" lay-filter="component-form-group">
<div class="layui-collapse">
@@ -86,7 +90,7 @@
</div>
</div>
</div>
- <table class="" id="mainTable" lay-filter="mainTable"> </table>
+ <!--<table class="" id="mainTable" lay-filter="mainTable"> </table>-->
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button type="button" lay-submit="" class="layui-btn layui-btn-sm" lay-event="btnAdd" id="btn-Add"><i class="layui-icon layui-icon-form"></i>鏂板</button>
@@ -102,28 +106,48 @@
<button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideButton" id="HideButton"><i class="layui-icon layui-icon-form"></i>鎸夐挳璁剧疆</button>
<!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-getCheckData"><i class="layui-icon layui-icon-tips"></i>棰勮</button>-->
<!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-reload"><i class="layui-icon layui-icon-refresh"></i>鍒锋柊</button>
- <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-confirm" id="btn_confirm"><i class="layui-icon layui-icon-ok-circle"></i>纭</button>
- <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-back" id="btn_back"><i class="layui-icon layui-icon-close-fill"></i>椹冲洖</button>
- <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-details"><i class="layui-icon layui-icon-form"></i>璇︽儏</button>
- <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-generate"><i class="layui-icon layui-icon-file"></i>鐢熸垚閫佽揣鍗�</button>
- <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-exit"><i class="layui-icon layui-icon-return"></i>閫�鍑�</button>-->
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-confirm" id="btn_confirm"><i class="layui-icon layui-icon-ok-circle"></i>纭</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-back" id="btn_back"><i class="layui-icon layui-icon-close-fill"></i>椹冲洖</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-details"><i class="layui-icon layui-icon-form"></i>璇︽儏</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-generate"><i class="layui-icon layui-icon-file"></i>鐢熸垚閫佽揣鍗�</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-exit"><i class="layui-icon layui-icon-return"></i>閫�鍑�</button>-->
</div>
</script>
</form>
+ <div class="layui-row" style="padding:10px 0">
+ <div class="layui-col-xs3 layui-inline" style="border: solid 1.5px #e0d6d64d;">
+ <div id="TreeTable" class="demo-tree demo-tree-box" style="width:99.5%;height:calc(50vh);"></div>
+ <div style="width:99.5%;height:calc(35vh);position: relative;">
+ <!--//杞挱鍥�-->
+ <div class="layui-carousel" id="test1" style="position:absolute;">
+ <!--閫忔槑搴� opacity: 0.2-->
+ <div carousel-item id="file">
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="layui-col-xs8 layui-inline" style="padding-left: 10px; width: 73%">
+ <div>
+ <table class="" id="mainTable" lay-filter="mainTable"></table>
+ </div>
+ </div>
+ </div>
</div>
</div>
</div>
</div>
- <script src="../../../layuiadmin/layui/layui.js"></script>
+ <!--<script src="../../../layuiadmin/layui/layui.js"></script>
<script src="../../../layuiadmin/Scripts/json2.js"></script>
<script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
<script src="../../../layuiadmin/Scripts/webConfig.js"></script>
+ <script src="../../../layuiadmin/layui/layui1.js"></script>
+ <script src="../../../layuiadmin/layui/lay/modules/table.js"></script>-->
<script>
layui.config({
base: '../../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰�
}).extend({
index: 'lib/index', //涓诲叆鍙fā鍧�
- }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate'], function () {
+ }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate', 'tree', 'carousel'], function () {
//#region 鍏叡鍙橀噺
var $ = layui.$
, admin = layui.admin
@@ -133,6 +157,8 @@
, element = layui.element
, laypage = layui.laypage
, laydate = layui.laydate
+ , tree = layui.tree
+ , carousel = layui.carousel
//鏌ヨ鏉′欢
var sWhere = "";
var option = [];
@@ -147,7 +173,7 @@
//#region 銆愯繃婊ゆ柟妗堛��
- //杩囨护鏉′欢鐨刢lass绫�
+ //杩囨护鏉′欢鐨刢lass绫�
var HClassTag = "ForFilteringSchemes";
//妯″潡鍚嶇О锛堜腑鏂囩増锛� 姣忎釜妯″潡椤甸潰閮介渶瑕佷慨鏀�
window.HModuleName = "渚涘簲鍟嗗垪琛ㄧ淮鎶�";
@@ -262,8 +288,12 @@
function set_ClearBill() {
//鍒濆鍖栬〃鏍�
set_InitGrid();
+
//鏌ヨ
get_Display(sWhere);
+
+ //鏍戠姸鍥剧敓鎴�
+ get_Display_Tree();
}
//鍒濆鍖栬〃鏍�
function set_InitGrid() {
@@ -291,7 +321,7 @@
//鏌ヨ
function get_Display(sWhere) {
var index = layer.load(0, { shade: false });
- var ajaxLoad = layer.load();
+ var ajaxLoad = layer.load();
$.ajax({
url: GetWEBURL() + '/Gy_Supplier/list',
type: "GET",
@@ -605,6 +635,92 @@
//#endregion
+ // 鏍戠姸鍥炬煡璇�
+ function get_Display_Tree() {
+ var ajaxLoad = layer.load();
+ $.ajax({
+ url: GetWEBURL() + '/Gy_BadReason/Gy_SupTypeTreeListByLevel',
+ type: "GET",
+ success: function (data1) {
+ if (data1.count == 1) {
+ layer.close(ajaxLoad);
+ var data = JSON.parse(data1.data);
+ MenuMain(data);
+ } else {
+ layer.close(ajaxLoad);
+ layer.alert(data1.code + data1.Message, { icon: 5 });
+ }
+ }, error: function () {
+ layer.close(ajaxLoad);
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ });
+ }
+
+ //閬嶅巻鐢熸垚涓昏彍鍗�
+ function MenuMain(data) {
+ var liStr = '[';
+ //閬嶅巻鐢熸垚涓昏彍鍗�
+ for (var i = 0; i < data.length; i++) {
+ // 鍒ゆ柇鏄惁瀛樺湪瀛愯彍鍗�
+ if (data[i].children != null && data[i].children.length > 0) {
+ liStr += '{"title": "' + data[i].id + "-" + data[i].title + '", "id": "' + data[i].id + '","spread":true, "children":[ ';
+ // 閬嶅巻鑾峰彇瀛愯彍鍗�
+ for (var k = 0; k < data[i].children.length; k++) {
+ liStr += getChildMenu(data[i].children[k], 0);
+ }
+ liStr = liStr.substring(0, liStr.length - 1);
+ liStr += ']},';
+ } else {
+ liStr += '{"title": "' + data[i].id + "-" + data[i].title + '", "id": "' + data[i].id + '"},';
+ }
+ };
+ liStr = liStr.substring(0, liStr.length - 1);
+ liStr += "]";
+ var treeTable = JSON.parse(liStr);
+ tree.render({
+ elem: '#TreeTable' //榛樿鏄偣鍑昏妭鐐瑰彲杩涜鏀剁缉
+ , data: treeTable
+ , click: function (obj) {
+ //楂樹寒鍙樿壊
+ $(".layui-tree-set").removeClass('layui-tree-set-active');
+ obj.elem.addClass('layui-tree-set-active');
+
+ var data = obj.data; //鑾峰彇褰撳墠鐐瑰嚮鐨勮妭鐐规暟鎹�
+ if (data.id == "100") {
+ sql = " and HSupTypeID = 0 ";
+ HSupTypeID = 0;
+ } else if (data.id == "0") {
+ sql = "";
+ HMaterTypeID = 0;
+ } else {
+ sql = " and HSupTypeID = '" + data.id + "' ";
+ HSupTypeID = data.id;
+ }
+ get_Display(sql);
+ }
+ });
+ }
+
+ // 閫掑綊鐢熸垚瀛愯彍鍗�
+ function getChildMenu(subMenu, num) {
+ num++;
+ var subStr = '';
+ if (subMenu.children != null && subMenu.children.length > 0) {
+ subStr += '{"title": "' + subMenu.id + "-" + subMenu.title + '", "id": "' + subMenu.id + '", "children":[';
+ for (var j = 0; j < subMenu.children.length; j++) {
+ subStr += getChildMenu(subMenu.children[j], num);
+ if (j + 1 == subMenu.children.length) {
+ subStr = subStr.substring(0, subStr.length - 1);
+ }1
+ }
+ subStr += ']},';
+ } else {
+ subStr += '{"title": "' + subMenu.id + "-" + subMenu.title + '", "id": "' + subMenu.id + '"},';
+ }
+ return subStr;
+ }
+
//#endregion
//#region 闅愯棌鍒楄缃�
@@ -815,7 +931,7 @@
for (var i = 0; i < Filter.length; i++) {
HFilterIdList = Filter[i].id; //杩囨护鏉′欢ID
HFilterIdLists += Filter[i].id + ","; //杩囨护鏉′欢ID(鎷兼帴)
- HValue += $("#" + HFilterIdList).val() + ","; //杩囨护鏉′欢涓緭鍏ョ殑鍊�
+ HValue += $("#" + HFilterIdList).val() + ","; //杩囨护鏉′欢涓緭鍏ョ殑鍊�
HElement_type += document.getElementById(HFilterIdList).tagName + ",";//閫氳繃鏍囩id鑾峰彇鏍囩绫诲瀷
}
diff --git "a/WebTM/views/\345\237\272\347\241\200\350\265\204\346\226\231/\351\224\200\345\224\256\345\237\272\347\241\200\350\265\204\346\226\231/Gy_Customer.html" "b/WebTM/views/\345\237\272\347\241\200\350\265\204\346\226\231/\351\224\200\345\224\256\345\237\272\347\241\200\350\265\204\346\226\231/Gy_Customer.html"
index 696b17b..a2ba012 100644
--- "a/WebTM/views/\345\237\272\347\241\200\350\265\204\346\226\231/\351\224\200\345\224\256\345\237\272\347\241\200\350\265\204\346\226\231/Gy_Customer.html"
+++ "b/WebTM/views/\345\237\272\347\241\200\350\265\204\346\226\231/\351\224\200\345\224\256\345\237\272\347\241\200\350\265\204\346\226\231/Gy_Customer.html"
@@ -1,7 +1,7 @@
锘�<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <!--<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>瀹㈡埛璁剧疆</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@@ -9,8 +9,28 @@
<link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
<script src="../../../layuiadmin/layui/layui.js"></script>
+ <script src="../../../layuiadmin/HideButton.js"></script>-->
+ <meta http-equiv="Content-Type" content="text/html; 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">
+ <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
+ <!--<script src="../../../layuiadmin/layui/layui.js"></script>-->
<script src="../../../layuiadmin/HideButton.js"></script>
-
+ <script src="../../../layuiadmin/layui/layui.js"></script>
+ <script src="../../../layuiadmin/Scripts/json2.js"></script>
+ <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
+ <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
+ <script src="../../../layuiadmin/layui/layui1.js"></script>
+ <script src="../../../layuiadmin/layui/lay/modules/table.js"></script>
+ <style>
+ /*鏍戠姸鍥剧偣鍑婚珮浜彉鑹�*/
+ .layui-tree-set-active > .layui-tree-entry .layui-tree-main {
+ background: #aef0f7;
+ }
+ </style>
</head>
<body>
<div class="layui-fluid">
@@ -88,7 +108,7 @@
</div>
</div>
- <table class="" id="mainTable" lay-filter="mainTable"> </table>
+ <!--<table class="" id="mainTable" lay-filter="mainTable"></table>-->
<div class="layui-tab layui-tab-card" style="margin-top:40px;">
<ul class="layui-tab-title">
<li class="layui-this">鍏宠仈鐢ㄦ埛</li>
@@ -126,21 +146,40 @@
</form>
+ <div class="layui-row" style="padding:10px 0">
+ <div class="layui-col-xs3 layui-inline" style="border: solid 1.5px #e0d6d64d;">
+ <div id="TreeTable" class="demo-tree demo-tree-box" style="width:99.5%;height:calc(50vh);"></div>
+ <div style="width:99.5%;height:calc(35vh);position: relative;">
+ <!--//杞挱鍥�-->
+ <div class="layui-carousel" id="test1" style="position:absolute;">
+ <!--閫忔槑搴� opacity: 0.2-->
+ <div carousel-item id="file">
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="layui-col-xs8 layui-inline" style="padding-left: 10px; width: 73%">
+ <div>
+ <table class="" id="mainTable" lay-filter="mainTable"></table>
+ </div>
+ </div>
+ </div>
+
</div>
</div>
</div>
</div>
- <script src="../../../layuiadmin/layui/layui.js"></script>
+ <!--<script src="../../../layuiadmin/layui/layui.js"></script>
<script src="../../../layuiadmin/Scripts/json2.js"></script>
<script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
- <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
+ <script src="../../../layuiadmin/Scripts/webConfig.js"></script>-->
<script>
layui.config({
base: '../../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰�
}).extend({
index: 'lib/index', //涓诲叆鍙fā鍧�
- }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate'], function () {
+ }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate', 'tree', 'carousel'], function () {
//#region 鍏敤鍙橀噺
var $ = layui.$
, admin = layui.admin
@@ -150,6 +189,8 @@
, element = layui.element
, laypage = layui.laypage
, laydate = layui.laydate
+ , tree = layui.tree
+ , carousel = layui.carousel
var sWhere = "";
var option = [];
var option1 = "";
@@ -164,7 +205,7 @@
//#endregion
//#region 銆愯繃婊ゆ柟妗堛��
- //杩囨护鏉′欢鐨刢lass绫�
+ //杩囨护鏉′欢鐨刢lass绫�
var HClassTag = "ForFilteringSchemes";
//妯″潡鍚嶇О锛堜腑鏂囩増锛� 姣忎釜妯″潡椤甸潰閮介渶瑕佷慨鏀�
window.HModuleName = "瀹㈡埛鍒楄〃缁存姢";
@@ -300,7 +341,9 @@
//鏍规嵁椤甸潰鐨勬墦寮�鏂瑰紡锛屽垽鏂繃婊ゆ潯浠舵槸鍚﹂渶瑕佽繘琛岄澶栫殑娣诲姞
addSWhereByOpenType();
get_Display(sWhere);
-
+ //鏍戠姸鍥剧敓鎴�
+ get_Display_Tree();
+
}
//#endregion
@@ -348,7 +391,7 @@
//#region 鏌ヨ
function get_Display(sWhere) {
var index = layer.load(0, { shade: false });
- var ajaxLoad = layer.load();
+ var ajaxLoad = layer.load();
//杩涘叆椤甸潰鏄剧ず鐨勭紦瀛樺垪琛�
$.ajax({
//url: "http://61.130.49.162:9090/WMSAPI///Web/GetMAXNum",
@@ -1016,6 +1059,94 @@
}
//#endregion
+ // 鏍戠姸鍥炬煡璇�
+ function get_Display_Tree() {
+ var ajaxLoad = layer.load();
+ $.ajax({
+ url: GetWEBURL() + 'Gy_BadReason/Gy_CusTypeTreeListByLevel',
+ type: "GET",
+ success: function (data1) {
+ if (data1.count == 1) {
+ layer.close(ajaxLoad);
+ var data = JSON.parse(data1.data);
+ MenuMain(data);
+ } else {
+ layer.close(ajaxLoad);
+ layer.alert(data1.code + data1.Message, { icon: 5 });
+ }
+ }, error: function () {
+ layer.close(ajaxLoad);
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ });
+ }
+
+ //閬嶅巻鐢熸垚涓昏彍鍗�
+ function MenuMain(data) {
+ var liStr = '[';
+ //閬嶅巻鐢熸垚涓昏彍鍗�
+ for (var i = 0; i < data.length; i++) {
+ // 鍒ゆ柇鏄惁瀛樺湪瀛愯彍鍗�
+ if (data[i].children != null && data[i].children.length > 0) {
+ liStr += '{"title": "' + data[i].id + "-" + data[i].title + '", "id": "' + data[i].id + '","spread":true, "children":[ ';
+ // 閬嶅巻鑾峰彇瀛愯彍鍗�
+ for (var k = 0; k < data[i].children.length; k++) {
+ liStr += getChildMenu(data[i].children[k], 0);
+ }
+ liStr = liStr.substring(0, liStr.length - 1);
+ liStr += ']},';
+ } else {
+ liStr += '{"title": "' + data[i].id + "-" + data[i].title + '", "id": "' + data[i].id + '"},';
+ }
+ };
+ liStr = liStr.substring(0, liStr.length - 1);
+ liStr += "]";
+ var treeTable = JSON.parse(liStr);
+ tree.render({
+ elem: '#TreeTable' //榛樿鏄偣鍑昏妭鐐瑰彲杩涜鏀剁缉
+ , data: treeTable
+ , click: function (obj) {
+ //楂樹寒鍙樿壊
+ $(".layui-tree-set").removeClass('layui-tree-set-active');
+ obj.elem.addClass('layui-tree-set-active');
+
+ var data = obj.data; //鑾峰彇褰撳墠鐐瑰嚮鐨勮妭鐐规暟鎹�
+ if (data.id == "100") {
+ sql = " and HCusTypeID=0 ";
+ HSupTypeID = 0;
+ } else if (data.id == "0") {
+ sql = "";
+ HMaterTypeID = 0;
+ } else {
+ sql = " and HCusTypeID='" + data.id + "' ";
+ HCusTypeID = data.id;
+ }
+ get_Display(sql);
+ }
+ });
+ }
+
+ // 閫掑綊鐢熸垚瀛愯彍鍗�
+ function getChildMenu(subMenu, num) {
+ num++;
+ var subStr = '';
+ if (subMenu.children != null && subMenu.children.length > 0) {
+ subStr += '{"title": "' + subMenu.id + "-" + subMenu.title + '", "id": "' + subMenu.id + '", "children":[';
+ for (var j = 0; j < subMenu.children.length; j++) {
+ subStr += getChildMenu(subMenu.children[j], num);
+ if (j + 1 == subMenu.children.length) {
+ subStr = subStr.substring(0, subStr.length - 1);
+ } 1
+ }
+ subStr += ']},';
+ } else {
+ subStr += '{"title": "' + subMenu.id + "-" + subMenu.title + '", "id": "' + subMenu.id + '"},';
+ }
+ return subStr;
+ }
+
+ //#endregion
+
//#region 鍙嶇鐢�/绂佺敤鏁版嵁
function set_De_Stop(num) {
var checkStatus = table.checkStatus('mainTable')
@@ -1174,7 +1305,7 @@
for (var i = 0; i < Filter.length; i++) {
HFilterIdList = Filter[i].id; //杩囨护鏉′欢ID
HFilterIdLists += Filter[i].id + ","; //杩囨护鏉′欢ID(鎷兼帴)
- HValue += $("#" + HFilterIdList).val() + ","; //杩囨护鏉′欢涓緭鍏ョ殑鍊�
+ HValue += $("#" + HFilterIdList).val() + ","; //杩囨护鏉′欢涓緭鍏ョ殑鍊�
HElement_type += document.getElementById(HFilterIdList).tagName + ",";//閫氳繃鏍囩id鑾峰彇鏍囩绫诲瀷
}
@@ -1359,6 +1490,6 @@
}
//#endregion
</script>
-
+
</body>
</html>
\ No newline at end of file
--
Gitblit v1.9.1