|
@@ -6,69 +6,303 @@
|
|
|
<title>资产管理</title>
|
|
<title>资产管理</title>
|
|
|
<link rel="stylesheet" href="../../lib/layui/css/layui.css">
|
|
<link rel="stylesheet" href="../../lib/layui/css/layui.css">
|
|
|
<style>
|
|
<style>
|
|
|
- body { padding: 15px; }
|
|
|
|
|
- .search-form { margin-bottom: 15px; padding: 15px; background: #fff; border-radius: 4px; }
|
|
|
|
|
- .table-toolbar { margin-bottom: 10px; }
|
|
|
|
|
|
|
+ body { padding: 10px; overflow: hidden; }
|
|
|
|
|
+ .dict-container {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ height: calc(100vh - 60px);
|
|
|
|
|
+ gap: 10px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dict-left {
|
|
|
|
|
+ width: 45%;
|
|
|
|
|
+ background: #fff;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dict-left .panel-header {
|
|
|
|
|
+ padding: 12px 15px;
|
|
|
|
|
+ border-bottom: 1px solid #eee;
|
|
|
|
|
+ background: #fafafa;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dict-left .panel-header .title {
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #333;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dict-left .search-box {
|
|
|
|
|
+ padding: 10px;
|
|
|
|
|
+ border-bottom: 1px solid #eee;
|
|
|
|
|
+ background: #fafafa;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dict-left .search-box .layui-form-item {
|
|
|
|
|
+ margin-bottom: 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dict-left .search-box .layui-input-inline {
|
|
|
|
|
+ width: calc(100% - 36px);
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dict-left .search-box .layui-input {
|
|
|
|
|
+ height: 28px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ padding-right: 24px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dict-left .search-box .input-clear {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ right: 38px;
|
|
|
|
|
+ top: 50%;
|
|
|
|
|
+ transform: translateY(-50%);
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ color: #999;
|
|
|
|
|
+ display: none;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dict-left .search-box .input-clear:hover {
|
|
|
|
|
+ color: #666;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dict-left .search-box .search-btn {
|
|
|
|
|
+ margin-left: 6px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dict-left .panel-body {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ padding: 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dict-right {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ background: #fff;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ overflow: auto;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dict-right .panel-header {
|
|
|
|
|
+ padding: 12px 15px;
|
|
|
|
|
+ border-bottom: 1px solid #eee;
|
|
|
|
|
+ background: #fafafa;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dict-right .panel-header .title {
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #333;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dict-right .search-form {
|
|
|
|
|
+ padding: 12px 15px;
|
|
|
|
|
+ border-bottom: 1px solid #f0f0f0;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dict-right .panel-body {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ padding: 0;
|
|
|
|
|
+ overflow: auto;
|
|
|
|
|
+ }
|
|
|
|
|
+ .dict-right .table-toolbar {
|
|
|
|
|
+ padding: 10px 15px;
|
|
|
|
|
+ border-bottom: 1px solid #f0f0f0;
|
|
|
|
|
+ }
|
|
|
|
|
+ .empty-tip {
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ padding: 60px 20px;
|
|
|
|
|
+ color: #999;
|
|
|
|
|
+ }
|
|
|
|
|
+ .empty-tip i {
|
|
|
|
|
+ font-size: 48px;
|
|
|
|
|
+ margin-bottom: 15px;
|
|
|
|
|
+ color: #ddd;
|
|
|
|
|
+ }
|
|
|
|
|
+ .type-info-card {
|
|
|
|
|
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ padding: 20px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ margin: 10px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: flex-start;
|
|
|
|
|
+ }
|
|
|
|
|
+ .type-info-card .type-info {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ min-width: 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ .type-info-card .type-name {
|
|
|
|
|
+ font-size: 20px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .type-info-card .type-code {
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ opacity: 0.9;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .type-info-card .type-actions {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ .type-info-card .type-actions .layui-btn {
|
|
|
|
|
+ background: rgba(255,255,255,0.2);
|
|
|
|
|
+ border: none;
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ }
|
|
|
|
|
+ .type-info-card .type-actions .layui-btn:hover {
|
|
|
|
|
+ background: rgba(255,255,255,0.35);
|
|
|
|
|
+ }
|
|
|
|
|
+ .type-info-card .type-actions .layui-btn-danger {
|
|
|
|
|
+ background: rgba(255,59,48,0.6);
|
|
|
|
|
+ }
|
|
|
|
|
+ .type-info-card .type-actions .layui-btn-danger:hover {
|
|
|
|
|
+ background: rgba(255,59,48,0.8);
|
|
|
|
|
+ }
|
|
|
|
|
+ .type-detail-card {
|
|
|
|
|
+ background: #fff;
|
|
|
|
|
+ margin: 0 10px 10px 10px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ padding: 12px 15px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: flex-start;
|
|
|
|
|
+ gap: 20px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .type-detail-card .detail-group {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ min-width: 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ .type-detail-card .detail-label {
|
|
|
|
|
+ color: #999;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .type-detail-card .detail-value {
|
|
|
|
|
+ color: #333;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ }
|
|
|
|
|
+ .layui-table-view {
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ }
|
|
|
</style>
|
|
</style>
|
|
|
</head>
|
|
</head>
|
|
|
<body>
|
|
<body>
|
|
|
- <div class="search-form">
|
|
|
|
|
- <form class="layui-form layui-form-pane" lay-filter="searchForm">
|
|
|
|
|
- <div class="layui-form-item">
|
|
|
|
|
- <div class="layui-inline">
|
|
|
|
|
- <label class="layui-form-label">资产管理部门</label>
|
|
|
|
|
- <div class="layui-input-inline">
|
|
|
|
|
- <input type="text" name="deptName" placeholder="请输入资产管理部门" class="layui-input">
|
|
|
|
|
|
|
+ <div class="dict-container">
|
|
|
|
|
+ <!-- 左侧:资产信息列表 -->
|
|
|
|
|
+ <div class="dict-left">
|
|
|
|
|
+ <div class="panel-header">
|
|
|
|
|
+ <span class="title"><i class="layui-icon layui-icon-app"></i> 资产信息</span>
|
|
|
|
|
+ <button class="layui-btn layui-btn-xs layui-btn-normal" id="btnAddAsset"><i class="layui-icon layui-icon-add-1"></i></button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="search-box">
|
|
|
|
|
+ <form class="layui-form" lay-filter="assetSearchForm">
|
|
|
|
|
+ <div class="layui-form-item" style="margin-bottom: 0;">
|
|
|
|
|
+ <div class="layui-inline" style="width: 100%; display: flex;">
|
|
|
|
|
+ <div class="layui-input-inline" style="position: relative;">
|
|
|
|
|
+ <input type="text" name="assetCode" placeholder="资产编码" class="layui-input" id="assetCodeSearch">
|
|
|
|
|
+ <i class="layui-icon layui-icon-close input-clear" id="inputClear">ဆ</i>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <button type="button" class="layui-btn layui-btn-sm search-btn" id="btnSearchAsset"><i class="layui-icon layui-icon-search"></i></button>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ </form>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="panel-body">
|
|
|
|
|
+ <table id="assetList" lay-filter="assetList"></table>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 右侧:资产状态历史 -->
|
|
|
|
|
+ <div class="dict-right">
|
|
|
|
|
+ <!-- 资产详情卡片 -->
|
|
|
|
|
+ <div class="type-info-card" id="assetInfoCard" style="display:none;">
|
|
|
|
|
+ <div class="type-info">
|
|
|
|
|
+ <div class="type-name" id="assetInfoName">-</div>
|
|
|
|
|
+ <div class="type-code" id="assetInfoCode">-</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="layui-inline">
|
|
|
|
|
- <label class="layui-form-label">资产编码</label>
|
|
|
|
|
- <div class="layui-input-inline">
|
|
|
|
|
- <input type="text" name="assetCode" placeholder="请输入资产编码" class="layui-input">
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <div class="type-actions">
|
|
|
|
|
+ <button class="layui-btn layui-btn-xs" id="btnEditAsset"><i class="layui-icon layui-icon-edit"></i></button>
|
|
|
|
|
+ <button class="layui-btn layui-btn-xs layui-btn-danger" id="btnDelAsset"><i class="layui-icon layui-icon-delete"></i></button>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="layui-inline">
|
|
|
|
|
- <label class="layui-form-label">资产类型</label>
|
|
|
|
|
- <div class="layui-input-inline">
|
|
|
|
|
- <input type="text" name="assetType" placeholder="请输入资产类型" class="layui-input">
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="type-detail-card" id="assetDetailCard" style="display:none;">
|
|
|
|
|
+ <div class="detail-group">
|
|
|
|
|
+ <div class="detail-label">资产类型</div>
|
|
|
|
|
+ <div class="detail-value" id="assetDetailType">-</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="layui-inline">
|
|
|
|
|
- <label class="layui-form-label">品牌</label>
|
|
|
|
|
- <div class="layui-input-inline">
|
|
|
|
|
- <input type="text" name="brand" placeholder="请输入品牌" class="layui-input">
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <div class="detail-group">
|
|
|
|
|
+ <div class="detail-label">品牌/型号</div>
|
|
|
|
|
+ <div class="detail-value" id="assetDetailBrand">-</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="layui-inline">
|
|
|
|
|
- <label class="layui-form-label">盘点状态</label>
|
|
|
|
|
- <div class="layui-input-inline">
|
|
|
|
|
- <select name="invstkStatus" class="layui-select">
|
|
|
|
|
- <option value="">全部</option>
|
|
|
|
|
- <option value="0">未盘点</option>
|
|
|
|
|
- <option value="1">已盘点</option>
|
|
|
|
|
- </select>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <div class="detail-group">
|
|
|
|
|
+ <div class="detail-label">采购价值</div>
|
|
|
|
|
+ <div class="detail-value" id="assetDetailValue">-</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="layui-inline">
|
|
|
|
|
- <button type="button" class="layui-btn" id="btnSearch"><i class="layui-icon layui-icon-search"></i> 搜索</button>
|
|
|
|
|
- <button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
|
|
|
|
|
|
+ <div class="detail-group">
|
|
|
|
|
+ <div class="detail-label">盘点状态</div>
|
|
|
|
|
+ <div class="detail-value" id="assetDetailStatus">-</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- </form>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <div class="table-toolbar">
|
|
|
|
|
- <button class="layui-btn layui-btn-sm" id="btnAdd"><i class="layui-icon layui-icon-add-1"></i> 添加</button>
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <div class="panel-header">
|
|
|
|
|
+ <span class="title"><i class="layui-icon layui-icon-time"></i> <span id="historyTitle">状态历史</span></span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="search-form">
|
|
|
|
|
+ <form class="layui-form layui-form-pane" lay-filter="historySearchForm">
|
|
|
|
|
+ <div class="layui-form-item" style="margin-bottom: 0;">
|
|
|
|
|
+ <div class="layui-inline">
|
|
|
|
|
+ <label class="layui-form-label">使用状态</label>
|
|
|
|
|
+ <div class="layui-input-inline">
|
|
|
|
|
+ <select name="useStatus" class="layui-select">
|
|
|
|
|
+ <option value="">全部</option>
|
|
|
|
|
+ <option value="在库">在库</option>
|
|
|
|
|
+ <option value="正常使用">正常使用</option>
|
|
|
|
|
+ <option value="已转移">已转移</option>
|
|
|
|
|
+ <option value="报废中">报废中</option>
|
|
|
|
|
+ <option value="维修中">维修中</option>
|
|
|
|
|
+ </select>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="layui-inline">
|
|
|
|
|
+ <label class="layui-form-label">使用部门</label>
|
|
|
|
|
+ <div class="layui-input-inline">
|
|
|
|
|
+ <input type="text" name="useDept" placeholder="部门" class="layui-input">
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="layui-inline">
|
|
|
|
|
+ <button type="button" class="layui-btn layui-btn-sm" id="btnSearchHistory"><i class="layui-icon layui-icon-search"></i></button>
|
|
|
|
|
+ <button type="reset" class="layui-btn layui-btn-sm layui-btn-primary">重置</button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </form>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="table-toolbar">
|
|
|
|
|
+ <button class="layui-btn layui-btn-sm" id="btnAddHistory2"><i class="layui-icon layui-icon-add-1"></i> 添加状态</button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="panel-body">
|
|
|
|
|
+ <div id="emptyTip" class="empty-tip" style="display:none;">
|
|
|
|
|
+ <i class="layui-icon layui-icon-tree"></i>
|
|
|
|
|
+ <p>请从左侧选择一个资产</p>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <table id="historyList" lay-filter="historyList"></table>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
-
|
|
|
|
|
- <table id="tableList" lay-filter="tableList"></table>
|
|
|
|
|
-
|
|
|
|
|
- <script type="text/html" id="toolbar">
|
|
|
|
|
- <a class="layui-btn layui-btn-xs" lay-event="history"><i class="layui-icon layui-icon-time"></i> 状态历史</a>
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <script type="text/html" id="assetToolbar">
|
|
|
<a class="layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i> 编辑</a>
|
|
<a class="layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i> 编辑</a>
|
|
|
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i> 删除</a>
|
|
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i> 删除</a>
|
|
|
</script>
|
|
</script>
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <script type="text/html" id="historyToolbar">
|
|
|
|
|
+ <a class="layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i> 编辑</a>
|
|
|
|
|
+ <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i> 删除</a>
|
|
|
|
|
+ </script>
|
|
|
|
|
+
|
|
|
<script type="text/html" id="invstkStatusTpl">
|
|
<script type="text/html" id="invstkStatusTpl">
|
|
|
{{# if(d.invstkStatus === '1') { }}
|
|
{{# if(d.invstkStatus === '1') { }}
|
|
|
<span class="layui-badge layui-bg-green">已盘点</span>
|
|
<span class="layui-badge layui-bg-green">已盘点</span>
|
|
@@ -76,7 +310,7 @@
|
|
|
<span class="layui-badge layui-bg-gray">未盘点</span>
|
|
<span class="layui-badge layui-bg-gray">未盘点</span>
|
|
|
{{# } }}
|
|
{{# } }}
|
|
|
</script>
|
|
</script>
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<script type="text/html" id="purchaseValueTpl">
|
|
<script type="text/html" id="purchaseValueTpl">
|
|
|
{{# if(d.purchaseValue) { }}
|
|
{{# if(d.purchaseValue) { }}
|
|
|
¥{{d.purchaseValue}}
|
|
¥{{d.purchaseValue}}
|
|
@@ -84,7 +318,23 @@
|
|
|
-
|
|
-
|
|
|
{{# } }}
|
|
{{# } }}
|
|
|
</script>
|
|
</script>
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <script type="text/html" id="useStatusTpl">
|
|
|
|
|
+ {{# if(d.useStatus === '在库') { }}
|
|
|
|
|
+ <span class="layui-badge layui-bg-gray">在库</span>
|
|
|
|
|
+ {{# } else if(d.useStatus === '正常使用') { }}
|
|
|
|
|
+ <span class="layui-badge layui-bg-green">正常使用</span>
|
|
|
|
|
+ {{# } else if(d.useStatus === '已转移') { }}
|
|
|
|
|
+ <span class="layui-badge layui-bg-blue">已转移</span>
|
|
|
|
|
+ {{# } else if(d.useStatus === '报废中') { }}
|
|
|
|
|
+ <span class="layui-badge layui-bg-orange">报废中</span>
|
|
|
|
|
+ {{# } else if(d.useStatus === '维修中') { }}
|
|
|
|
|
+ <span class="layui-badge layui-bg-yellow">维修中</span>
|
|
|
|
|
+ {{# } else { }}
|
|
|
|
|
+ <span class="layui-badge layui-bg-cyan">{{d.useStatus}}</span>
|
|
|
|
|
+ {{# } }}
|
|
|
|
|
+ </script>
|
|
|
|
|
+
|
|
|
<script src="../../lib/jquery.min.js"></script>
|
|
<script src="../../lib/jquery.min.js"></script>
|
|
|
<script src="../../lib/layui/layui.js"></script>
|
|
<script src="../../lib/layui/layui.js"></script>
|
|
|
<script src="../../js/config.js"></script>
|
|
<script src="../../js/config.js"></script>
|
|
@@ -94,55 +344,268 @@
|
|
|
var table = layui.table;
|
|
var table = layui.table;
|
|
|
var layer = layui.layer;
|
|
var layer = layui.layer;
|
|
|
var form = layui.form;
|
|
var form = layui.form;
|
|
|
-
|
|
|
|
|
- var tableIns = TableRender.init({
|
|
|
|
|
- elem: '#tableList',
|
|
|
|
|
- url: Config.api.assets.page,
|
|
|
|
|
- cols: [[
|
|
|
|
|
- { field: 'deptName', title: '资产管理部门', width: 150 },
|
|
|
|
|
- { field: 'assetCode', title: '资产编码', width: 150 },
|
|
|
|
|
- { field: 'assetType', title: '资产类型', width: 120 },
|
|
|
|
|
- { field: 'brand', title: '品牌', width: 100 },
|
|
|
|
|
- { field: 'model', title: '型号', width: 120 },
|
|
|
|
|
- { field: 'purchaseDate', title: '购买日期', width: 120 },
|
|
|
|
|
- { field: 'purchaseValue', title: '采购价值', width: 120, templet: '#purchaseValueTpl' },
|
|
|
|
|
- { field: 'invstkStatus', title: '盘点状态', width: 100, templet: '#invstkStatusTpl' },
|
|
|
|
|
- { field: 'lastInvstkTime', title: '最后盘点时间', width: 170, templet: function(d) { return d.lastInvstkTime ? Common.formatDate(d.lastInvstkTime) : '-'; } },
|
|
|
|
|
- { field: 'createTime', title: '创建时间', width: 170, templet: function(d) { return Common.formatDate(d.createTime); } },
|
|
|
|
|
- { fixed: 'right', title: '操作', width: 280, align: 'center', toolbar: '#toolbar' }
|
|
|
|
|
- ]]
|
|
|
|
|
|
|
+
|
|
|
|
|
+ var currentAsset = null;
|
|
|
|
|
+ var historyTableIns = null;
|
|
|
|
|
+ var assetTableIns = null;
|
|
|
|
|
+
|
|
|
|
|
+ // 加载资产详情
|
|
|
|
|
+ function loadAssetInfo(assetId) {
|
|
|
|
|
+ Common.get(Config.api.assets.getInfo + '/' + assetId, function(res) {
|
|
|
|
|
+ if (res.code === 200 && res.data) {
|
|
|
|
|
+ var info = res.data;
|
|
|
|
|
+ $('#assetInfoCard').show();
|
|
|
|
|
+ $('#assetDetailCard').show();
|
|
|
|
|
+ $('#assetInfoName').text(info.assetCode || '-');
|
|
|
|
|
+ $('#assetInfoCode').text(info.deptName || '-');
|
|
|
|
|
+ $('#assetDetailType').text(info.assetType || '-');
|
|
|
|
|
+ $('#assetDetailBrand').text((info.brand || '-') + ' / ' + (info.model || '-'));
|
|
|
|
|
+ $('#assetDetailValue').text(info.purchaseValue ? '¥' + info.purchaseValue : '-');
|
|
|
|
|
+ var statusText = info.invstkStatus === '1' ? '已盘点' : '未盘点';
|
|
|
|
|
+ var statusClass = info.invstkStatus === '1' ? 'layui-badge-green' : 'layui-badge-gray';
|
|
|
|
|
+ $('#assetDetailStatus').html('<span class="layui-badge ' + statusClass + '">' + statusText + '</span>');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 初始化资产表格
|
|
|
|
|
+ function initAssetTable() {
|
|
|
|
|
+ assetTableIns = TableRender.init({
|
|
|
|
|
+ elem: '#assetList',
|
|
|
|
|
+ url: Config.api.assets.page,
|
|
|
|
|
+ page: true,
|
|
|
|
|
+ limit: 20,
|
|
|
|
|
+ limits: [10, 20, 50, 100],
|
|
|
|
|
+ height: 'full-120',
|
|
|
|
|
+ where: {},
|
|
|
|
|
+ cols: [[
|
|
|
|
|
+ { field: 'assetType', title: '资产类型', width: 120 },
|
|
|
|
|
+ { field: 'model', title: '型号', width: 120 },
|
|
|
|
|
+ { field: 'brand', title: '品牌', width: 120 },
|
|
|
|
|
+ { field: 'assetCode', title: '资产编码', width: 120 },
|
|
|
|
|
+ { field: 'deptName', title: '管理部门', width: 120 },
|
|
|
|
|
+ { field: 'purchaseValue', title: '采购价(元)', width: 120, templet: '#purchaseValueTpl' },
|
|
|
|
|
+ { field: 'invstkStatus', title: '盘点状态', width: 120, templet: '#invstkStatusTpl' },
|
|
|
|
|
+ { field: 'lastInvstkTime', title: '最后盘点时间', width: 120 },
|
|
|
|
|
+ { fixed: 'right', title: '操作', width: 180, align: 'center', toolbar: '#assetToolbar' }
|
|
|
|
|
+ ]],
|
|
|
|
|
+ done: function(res, curr, count) {
|
|
|
|
|
+ // 默认选中第一行
|
|
|
|
|
+ if (count > 0 && !currentAsset) {
|
|
|
|
|
+ var firstRow = res.data[0];
|
|
|
|
|
+ if (firstRow) {
|
|
|
|
|
+ selectAsset(firstRow.id, firstRow);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 选中资产
|
|
|
|
|
+ function selectAsset(assetId, rowData) {
|
|
|
|
|
+ currentAsset = rowData;
|
|
|
|
|
+ loadAssetInfo(assetId);
|
|
|
|
|
+ loadHistoryList(assetId);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 搜索资产
|
|
|
|
|
+ function searchAssetList() {
|
|
|
|
|
+ var assetCode = $('#assetCodeSearch').val();
|
|
|
|
|
+ table.reload('assetList', {
|
|
|
|
|
+ where: { assetCode: assetCode },
|
|
|
|
|
+ page: { curr: 1 }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 加载状态历史列表
|
|
|
|
|
+ function loadHistoryList(assetId) {
|
|
|
|
|
+ if (!assetId) {
|
|
|
|
|
+ $('#emptyTip').show();
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ $('#emptyTip').hide();
|
|
|
|
|
+
|
|
|
|
|
+ if (historyTableIns) {
|
|
|
|
|
+ table.reload('historyList', {
|
|
|
|
|
+ where: { assetId: assetId },
|
|
|
|
|
+ page: { curr: 1 }
|
|
|
|
|
+ });
|
|
|
|
|
+ } else {
|
|
|
|
|
+ historyTableIns = TableRender.init({
|
|
|
|
|
+ elem: '#historyList',
|
|
|
|
|
+ url: Config.api.assetStatusHistory.page,
|
|
|
|
|
+ where: { assetId: assetId },
|
|
|
|
|
+ page: true,
|
|
|
|
|
+ limits: [10, 20, 50],
|
|
|
|
|
+ maxHeight: '500',
|
|
|
|
|
+ cols: [[
|
|
|
|
|
+ { field: 'useCompany', title: '使用公司', width: 120 },
|
|
|
|
|
+ { field: 'useDept', title: '使用部门', width: 120 },
|
|
|
|
|
+ { field: 'useUser', title: '使用人', width: 100 },
|
|
|
|
|
+ { field: 'useStatus', title: '使用状态', width: 110, templet: '#useStatusTpl' },
|
|
|
|
|
+ { field: 'curLocation', title: '当前位置', width: 120 },
|
|
|
|
|
+ { field: 'startDate', title: '生效开始', width: 120, templet: function(d) { return d.startDate || '-'; } },
|
|
|
|
|
+ { field: 'endDate', title: '生效结束', width: 120, templet: function(d) { return d.endDate || '-'; } },
|
|
|
|
|
+ { field: 'operatorName', title: '操作人', width: 100 },
|
|
|
|
|
+ { field: 'operatorDate', title: '操作时间', width: 120 },
|
|
|
|
|
+ { field: 'assistantName', title: '协管员', width: 120 },
|
|
|
|
|
+ { field: 'remark', title: '备注', width: 120 },
|
|
|
|
|
+ { fixed: 'right', title: '操作', width: 180, align: 'center', toolbar: '#historyToolbar' }
|
|
|
|
|
+ ]]
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 初始化资产表格
|
|
|
|
|
+ initAssetTable();
|
|
|
|
|
+
|
|
|
|
|
+ // 搜索资产
|
|
|
|
|
+ $('#btnSearchAsset').click(function() {
|
|
|
|
|
+ searchAssetList();
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 输入时显示/隐藏清除按钮
|
|
|
|
|
+ $('#assetCodeSearch').on('input', function() {
|
|
|
|
|
+ var val = $(this).val();
|
|
|
|
|
+ if (val) {
|
|
|
|
|
+ $('#inputClear').show();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $('#inputClear').hide();
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 点击清除按钮
|
|
|
|
|
+ $('#inputClear').click(function() {
|
|
|
|
|
+ $('#assetCodeSearch').val('');
|
|
|
|
|
+ $(this).hide();
|
|
|
|
|
+ searchAssetList();
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 回车搜索
|
|
|
|
|
+ $('#assetCodeSearch').keypress(function(e) {
|
|
|
|
|
+ if (e.which === 13) {
|
|
|
|
|
+ searchAssetList();
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 资产行点击
|
|
|
|
|
+ table.on('row(assetList)', function(obj) {
|
|
|
|
|
+ selectAsset(obj.data.id, obj.data);
|
|
|
});
|
|
});
|
|
|
-
|
|
|
|
|
- $('#btnSearch').click(function() {
|
|
|
|
|
- table.reload('tableList', {
|
|
|
|
|
- where: form.val('searchForm'),
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // 搜索状态历史
|
|
|
|
|
+ $('#btnSearchHistory').click(function() {
|
|
|
|
|
+ if (!currentAsset) {
|
|
|
|
|
+ layer.msg('请先选择资产', { icon: 0 });
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ var data = form.val('historySearchForm');
|
|
|
|
|
+ data.assetId = currentAsset.id;
|
|
|
|
|
+ table.reload('historyList', {
|
|
|
|
|
+ where: data,
|
|
|
page: { curr: 1 }
|
|
page: { curr: 1 }
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
-
|
|
|
|
|
- $('#btnAdd').click(function() {
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // 添加资产
|
|
|
|
|
+ $('#btnAddAsset').click(function() {
|
|
|
Common.open({
|
|
Common.open({
|
|
|
title: '添加资产',
|
|
title: '添加资产',
|
|
|
- area: ['650px', '550px'],
|
|
|
|
|
|
|
+ area: ['650px', '600px'],
|
|
|
content: 'assets_form.html'
|
|
content: 'assets_form.html'
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
-
|
|
|
|
|
- table.on('tool(tableList)', function(obj) {
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // 编辑资产
|
|
|
|
|
+ $('#btnEditAsset').click(function() {
|
|
|
|
|
+ if (!currentAsset) {
|
|
|
|
|
+ layer.msg('请先选择资产', { icon: 0 });
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ Common.open({
|
|
|
|
|
+ title: '编辑资产',
|
|
|
|
|
+ area: ['650px', '600px'],
|
|
|
|
|
+ content: 'assets_form.html?id=' + currentAsset.id
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 删除资产
|
|
|
|
|
+ $('#btnDelAsset').click(function() {
|
|
|
|
|
+ if (!currentAsset) {
|
|
|
|
|
+ layer.msg('请先选择资产', { icon: 0 });
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ Common.confirm('确定要删除资产 【' + currentAsset.assetCode + '】 吗?', function() {
|
|
|
|
|
+ Common.del(Config.api.assets.remove + '/' + currentAsset.id, function(res) {
|
|
|
|
|
+ Common.success('删除成功', function() {
|
|
|
|
|
+ currentAsset = null;
|
|
|
|
|
+ $('#assetInfoCard').hide();
|
|
|
|
|
+ $('#assetDetailCard').hide();
|
|
|
|
|
+ table.reload('assetList');
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 添加状态历史
|
|
|
|
|
+ function openHistoryForm() {
|
|
|
|
|
+ if (!currentAsset) {
|
|
|
|
|
+ layer.msg('请先选择资产', { icon: 0 });
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ Common.open({
|
|
|
|
|
+ title: '添加状态历史',
|
|
|
|
|
+ area: ['650px', '550px'],
|
|
|
|
|
+ content: 'asset_status_history_form.html?assetId=' + currentAsset.id
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $('#btnAddHistory, #btnAddHistory2').click(function() {
|
|
|
|
|
+ openHistoryForm();
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 资产表格操作
|
|
|
|
|
+ table.on('tool(assetList)', function(obj) {
|
|
|
var data = obj.data;
|
|
var data = obj.data;
|
|
|
var event = obj.event;
|
|
var event = obj.event;
|
|
|
-
|
|
|
|
|
- if (event === 'history') {
|
|
|
|
|
- parent.openTab('assets/asset_status_history_list.html?assetId=' + data.id + '&assetCode=' + data.assetCode, '状态历史-' + data.assetCode, 'asset_history_' + data.id);
|
|
|
|
|
- } else if (event === 'edit') {
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if (event === 'edit') {
|
|
|
Common.open({
|
|
Common.open({
|
|
|
title: '编辑资产',
|
|
title: '编辑资产',
|
|
|
- area: ['650px', '550px'],
|
|
|
|
|
|
|
+ area: ['650px', '600px'],
|
|
|
content: 'assets_form.html?id=' + data.id
|
|
content: 'assets_form.html?id=' + data.id
|
|
|
});
|
|
});
|
|
|
} else if (event === 'del') {
|
|
} else if (event === 'del') {
|
|
|
Common.confirm('确定要删除资产 【' + data.assetCode + '】 吗?', function() {
|
|
Common.confirm('确定要删除资产 【' + data.assetCode + '】 吗?', function() {
|
|
|
Common.del(Config.api.assets.remove + '/' + data.id, function(res) {
|
|
Common.del(Config.api.assets.remove + '/' + data.id, function(res) {
|
|
|
|
|
+ Common.success('删除成功', function() {
|
|
|
|
|
+ obj.del();
|
|
|
|
|
+ if (currentAsset && currentAsset.id === data.id) {
|
|
|
|
|
+ currentAsset = null;
|
|
|
|
|
+ $('#assetInfoCard').hide();
|
|
|
|
|
+ $('#assetDetailCard').hide();
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 状态历史表格操作
|
|
|
|
|
+ table.on('tool(historyList)', function(obj) {
|
|
|
|
|
+ var data = obj.data;
|
|
|
|
|
+ var event = obj.event;
|
|
|
|
|
+
|
|
|
|
|
+ if (event === 'edit') {
|
|
|
|
|
+ Common.open({
|
|
|
|
|
+ title: '编辑状态历史',
|
|
|
|
|
+ area: ['650px', '550px'],
|
|
|
|
|
+ content: 'asset_status_history_form.html?assetId=' + currentAsset.id + '&id=' + data.id
|
|
|
|
|
+ });
|
|
|
|
|
+ } else if (event === 'del') {
|
|
|
|
|
+ Common.confirm('确定要删除该状态历史记录吗?', function() {
|
|
|
|
|
+ Common.del(Config.api.assetStatusHistory.remove + '/' + data.id, function(res) {
|
|
|
Common.success('删除成功', function() {
|
|
Common.success('删除成功', function() {
|
|
|
obj.del();
|
|
obj.del();
|
|
|
});
|
|
});
|
|
@@ -150,6 +613,18 @@
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
|
|
+ // 监听弹窗关闭,刷新资产列表
|
|
|
|
|
+ window.refreshAssetList = function() {
|
|
|
|
|
+ table.reload('assetList');
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ // 监听弹窗关闭,刷新状态历史
|
|
|
|
|
+ window.refreshHistoryList = function() {
|
|
|
|
|
+ if (currentAsset) {
|
|
|
|
|
+ loadHistoryList(currentAsset.id);
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
});
|
|
});
|
|
|
</script>
|
|
</script>
|
|
|
</body>
|
|
</body>
|