|
@@ -38,7 +38,10 @@
|
|
|
<div class="layui-form-item">
|
|
<div class="layui-form-item">
|
|
|
<label class="layui-form-label"><span class="required">*</span>管理部门</label>
|
|
<label class="layui-form-label"><span class="required">*</span>管理部门</label>
|
|
|
<div class="layui-input-inline">
|
|
<div class="layui-input-inline">
|
|
|
- <input type="text" name="deptName" lay-verify="required" placeholder="请输入资产管理部门" class="layui-input">
|
|
|
|
|
|
|
+ <input type="hidden" name="deptName" id="deptNameHidden">
|
|
|
|
|
+ <select id="deptSelect" lay-verify="required" lay-search>
|
|
|
|
|
+ <option value="">请选择或输入管理部门</option>
|
|
|
|
|
+ </select>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
@@ -182,17 +185,78 @@
|
|
|
var assetTypeParam = Common.getQueryString('assetType');
|
|
var assetTypeParam = Common.getQueryString('assetType');
|
|
|
var isEdit = !!id;
|
|
var isEdit = !!id;
|
|
|
|
|
|
|
|
|
|
+ var assetData = null;
|
|
|
|
|
+
|
|
|
|
|
+ // 先加载资产数据(编辑时),等完成后加载部门列表(用于回显)
|
|
|
if (isEdit) {
|
|
if (isEdit) {
|
|
|
- Common.get(Config.api.assets.getInfo + '/' + id, function(res) {
|
|
|
|
|
|
|
+ loadAssetData(id, function() {
|
|
|
|
|
+ loadDepartments();
|
|
|
|
|
+ });
|
|
|
|
|
+ } else if (assetTypeParam) {
|
|
|
|
|
+ $('input[name="assetType"]').val(assetTypeParam);
|
|
|
|
|
+ loadDepartments();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ loadDepartments();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ function loadDepartments() {
|
|
|
|
|
+ Common.get(Config.api.department.list, function(res) {
|
|
|
|
|
+ if (res.code === 200 && res.data) {
|
|
|
|
|
+ var depts = res.data || [];
|
|
|
|
|
+ var html = '<option value="">请选择或输入管理部门</option>';
|
|
|
|
|
+ depts.forEach(function(dept) {
|
|
|
|
|
+ html += '<option value="' + dept.deptName + '">' + dept.deptName + '</option>';
|
|
|
|
|
+ });
|
|
|
|
|
+ $('#deptSelect').html(html);
|
|
|
|
|
+
|
|
|
|
|
+ // 部门加载完成后,如果有资产数据则回显部门
|
|
|
|
|
+ if (assetData && assetData.deptName) {
|
|
|
|
|
+ $('#deptSelect').val(assetData.deptName);
|
|
|
|
|
+ $('#deptNameHidden').val(assetData.deptName);
|
|
|
|
|
+ }
|
|
|
|
|
+ form.render('select');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 监听部门选择变化,同步到隐藏字段
|
|
|
|
|
+ form.on('select(deptSelect)', function(data) {
|
|
|
|
|
+ var val = data.value;
|
|
|
|
|
+ // 如果选择的值不在下拉列表中(用户手动输入),则添加到option中
|
|
|
|
|
+ if (val && data.elem.find('option[value="' + val + '"]').length === 0) {
|
|
|
|
|
+ var html = '<option value="' + val + '">' + val + '</option>';
|
|
|
|
|
+ $('#deptSelect').append(html);
|
|
|
|
|
+ form.render('select');
|
|
|
|
|
+ }
|
|
|
|
|
+ $('#deptNameHidden').val(val);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 监听部门输入框的输入事件(支持手动输入)
|
|
|
|
|
+ $('#deptSelect').siblings('.layui-form-select').find('input').on('input', function() {
|
|
|
|
|
+ var val = $(this).val();
|
|
|
|
|
+ $('#deptNameHidden').val(val);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ function loadAssetData(assetId, callback) {
|
|
|
|
|
+ Common.get(Config.api.assets.getInfo + '/' + assetId, function(res) {
|
|
|
if (res.code === 200) {
|
|
if (res.code === 200) {
|
|
|
|
|
+ assetData = res.data;
|
|
|
form.val('assetsForm', res.data);
|
|
form.val('assetsForm', res.data);
|
|
|
|
|
+ // 设置隐藏字段
|
|
|
|
|
+ $('#deptNameHidden').val(res.data.deptName);
|
|
|
}
|
|
}
|
|
|
|
|
+ if (callback) callback();
|
|
|
});
|
|
});
|
|
|
- } else if (assetTypeParam) {
|
|
|
|
|
- $('input[name="assetType"]').val(assetTypeParam);
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
form.on('submit(submitForm)', function(data) {
|
|
form.on('submit(submitForm)', function(data) {
|
|
|
|
|
+ // 提交前确保隐藏字段有值(从输入框获取最新值)
|
|
|
|
|
+ var deptVal = $('#deptSelect').siblings('.layui-form-select').find('input').val();
|
|
|
|
|
+ if (deptVal) {
|
|
|
|
|
+ $('#deptNameHidden').val(deptVal);
|
|
|
|
|
+ }
|
|
|
|
|
+ // 确保表单数据包含deptName
|
|
|
|
|
+ data.field.deptName = $('#deptNameHidden').val() || deptVal;
|
|
|
Common.ajax({
|
|
Common.ajax({
|
|
|
url: isEdit ? Config.api.assets.update : Config.api.assets.save,
|
|
url: isEdit ? Config.api.assets.update : Config.api.assets.save,
|
|
|
type: isEdit ? 'PUT' : 'POST',
|
|
type: isEdit ? 'PUT' : 'POST',
|