Browse Source

更新货源管理系统功能和样式

pull/4/head
Default User 2 months ago
parent
commit
02f1fba891
  1. 15
      Reject.html
  2. 217
      supply.html

15
Reject.html

@ -1256,13 +1256,20 @@
<div id="supplyImages" style="display: flex; gap: 10px; margin-bottom: 10px; flex-wrap: wrap;">
<!-- 图片预览将动态添加到这里 -->
</div>
<div id="imageDropArea" style="border: 2px dashed #d9d9d9; border-radius: 4px; padding: 20px; text-align: center; margin-bottom: 10px; background-color: #fafafa; transition: all 0.3s ease;">
<div style="font-size: 14px; color: #666; margin-bottom: 5px;">拖拽图片到此处或点击添加图片</div>
<div style="font-size: 12px; color: #999;">支持JPG、PNG等图片格式,最多上传5张</div>
<div id="imageDropArea" style="border: 2px dashed #d9d9d9; border-radius: 4px; padding: 20px; text-align: left; margin-bottom: 10px; background-color: #fafafa; transition: all 0.3s ease;">
<div style="font-size: 14px; color: #666; margin-bottom: 5px; text-align: center;">拖拽图片到此处或点击添加图片</div>
<div style="font-size: 12px; color: #666; margin: 10px 0; padding: 8px; background-color: #f5f5f5; border-radius: 4px;">
<div>图片要求:</div>
<div>1. 箱子堆头图(不得出现地址、电话及货源信息,直营包场除外);</div>
<div>2. 鸡蛋外观图;</div>
<div>3. 敲开鸡蛋后清晰显示蛋清、蛋黄状态,以体现新鲜度;</div>
<div>4. 其他能佐证蛋重、品种的辅助图片。</div>
</div>
<div style="font-size: 12px; color: #999; text-align: left;">支持JPG、PNG等图片格式,最多上传5张</div>
</div>
<input type="file" id="supplyImageUpload" multiple accept="image/*" style="display: none;">
<button id="addImageBtn" class="btn btn-default" style="margin-right: 10px;">添加图片</button>
<span style="font-size: 12px; color: #999;">最多上传5张图片</span>
<span style="font-size: 12px; color: #999; text-align: left;">最多上传5张图片</span>
</div>
</div>
<div class="modal-footer">

217
supply.html

@ -413,7 +413,8 @@
font-size: 14px;
box-sizing: border-box;
transition: all 0.3s;
background-color: #fff;
background-color: #fafafa;
caret-color: #333;
}
.form-input:hover,
@ -422,10 +423,14 @@
}
.form-input:focus,
.form-select:focus {
.form-input:active,
.form-select:focus,
.form-select:active {
outline: none;
border-color: #1677ff;
box-shadow: 0 0 0 2px rgba(22, 119, 255, 0.2);
background-color: #fafafa;
caret-color: #333;
}
/* 图片上传 */
@ -1039,9 +1044,12 @@
<label class="form-label">货源状态</label>
<div style="display: flex; gap: 10px;">
<button type="button" id="preSaleBtn" class="status-button" onclick="setSupplyStatus('预售')" style="padding: 8px 20px; border: 2px solid #d9d9d9; background-color: white; color: #666; border-radius: 6px; cursor: pointer;">预售</button>
<button type="button" id="inStockBtn" class="status-button" onclick="setSupplyStatus('现货')" style="padding: 8px 20px; border: 2px solid #d9d9d9; background-color: white; color: #666; border-radius: 6px; cursor: pointer;">现货</button>
<button type="button" id="inStockBtn" class="status-button" onclick="setSupplyStatus('现货')" style="padding: 8px 20px; border: 2px solid #d9d9d9; background-color: white; color: #666; border-radius: 6px; cursor: pointer;">现货</button>
<input type="hidden" id="supplyStatus" value="">
</div>
<div style="margin-top: 10px; padding: 8px; background-color: #f5f5f5; border-radius: 4px; font-size: 12px; color: #666; text-align: left;">
预售(没有现货,销售未来的货), 现货(当日可用于销售的货源)
</div>
</div>
<!-- 商品图片 -->
@ -1051,7 +1059,14 @@
<div id="uploadImages" class="upload-images"></div>
<div class="add-image" onclick="triggerImageUpload()">+</div>
<input type="file" id="imageUpload" multiple accept="image/*" style="display: none;" onchange="handleImageUpload(event)">
<div style="font-size: 12px; color: #999; margin-top: 10px;">最多上传5张图片</div>
<div style="font-size: 12px; color: #666; margin-top: 10px; text-align: left; padding: 8px; background-color: #f5f5f5; border-radius: 4px;">
<div>图片要求:</div>
<div>1. 箱子堆头图(不得出现地址、电话及货源信息,直营包场除外);</div>
<div>2. 鸡蛋外观图;</div>
<div>3. 敲开鸡蛋后清晰显示蛋清、蛋黄状态,以体现新鲜度;</div>
<div>4. 其他能佐证蛋重、品种的辅助图片。</div>
</div>
<div style="font-size: 12px; color: #999; margin-top: 10px; text-align: left;">最多上传5张图片</div>
</div>
</div>
@ -1128,7 +1143,7 @@
<!-- 价格 -->
<div class="form-group">
<label class="form-label">价格</label>
<label class="form-label">价格(销售价)</label>
<input type="number" class="form-input" id="price" placeholder="请输入价格" step="0.01">
</div>
@ -1139,7 +1154,7 @@
</div>
<!-- 斤重 -->
<div class="form-group">
<div class="form-group" style="display: none;">
<label class="form-label">斤重</label>
<input type="text" class="form-input" id="grossWeight" placeholder="请输入斤重">
</div>
@ -1181,6 +1196,11 @@
<h3>选择货源类型</h3>
<button class="close-btn" onclick="hideSourceTypeSelectModal()">×</button>
</div>
<div style="padding: 10px 20px; background-color: #f0f8ff; border-radius: 4px; margin: 0 20px; font-size: 12px; color: #1890ff;">
<div>平台货源: 直接包场货源</div>
<div>鸡场直销: 鸡场直销货源</div>
<div>第三方货源: 贸易商货源</div>
</div>
<div class="select-search">
<input type="text" id="sourceTypeSearchInput" placeholder="搜索货源类型" oninput="filterSourceTypeOptions()" style="width: 100%; padding: 10px; border: 1px solid #d9d9d9; border-radius: 8px; font-size: 14px;">
</div>
@ -1225,6 +1245,10 @@
<h3>选择蛋黄类型</h3>
<button class="close-btn" onclick="hideYolkSelectModal()">×</button>
</div>
<div style="padding: 10px 20px; background-color: #fff3cd; border: 1px solid #ffeeba; border-radius: 4px; margin: 0 20px; font-size: 12px; color: #856404;">
<div>请按实际情况选择蛋黄颜色,对于脏次或者冻库蛋不知道蛋黄颜色的情况下可以填写未知</div>
<div>(如果有色卡可以在货源描述里面填写色度)</div>
</div>
<div class="select-search">
<input type="text" id="yolkSearchInput" placeholder="搜索蛋黄类型" oninput="filterYolkOptions()" style="width: 100%; padding: 10px; border: 1px solid #d9d9d9; border-radius: 8px; font-size: 14px;">
</div>
@ -1269,6 +1293,11 @@
<h3>选择规格</h3>
<button class="close-btn" onclick="hideSpecSelectModal()">×</button>
</div>
<div style="padding: 0 20px 10px 20px;">
<div style="padding: 8px; background-color: #f5f5f5; border-radius: 4px; font-size: 12px; color: #666; text-align: left;">
按重量选择该批次货最多的重量区间
</div>
</div>
<div class="select-search">
<input type="text" id="specSearchInput" placeholder="搜索规格" oninput="filterSpecOptions()" style="width: 100%; padding: 10px; border: 1px solid #d9d9d9; border-radius: 8px; font-size: 14px;">
</div>
@ -1297,10 +1326,9 @@
</div>
<div class="select-body">
<div id="regionOptionsList" style="display: flex; gap: 10px; padding: 10px;">
<!-- 省市选择将通过JavaScript动态生成 -->
<!-- 省市选择将通过JavaScript动态生成 -->
<div id="provinceList" style="flex: 1; overflow-y: auto;"></div>
<div id="cityList" style="flex: 1; overflow-y: auto;"></div>
<div id="districtList" style="flex: 1; overflow-y: auto;"></div>
</div>
</div>
<div class="select-footer" style="padding: 16px 20px; display: flex; justify-content: space-between; border-top: 1px solid #f0f0f0; background-color: #fafafa;">
@ -1365,6 +1393,9 @@
<button type="button" id="editInStockBtn" class="status-button" onclick="setEditSupplyStatus('现货')" style="padding: 8px 20px; border: 2px solid #d9d9d9; background-color: white; color: #666; border-radius: 6px; cursor: pointer;">现货</button>
<input type="hidden" id="editSupplyStatus" value="">
</div>
<div style="margin-top: 10px; padding: 8px; background-color: #f5f5f5; border-radius: 4px; font-size: 12px; color: #666; text-align: left;">
预售(没有现货,销售未来的货), 现货(当日可用于销售的货源)
</div>
</div>
<!-- 商品图片 -->
@ -1448,7 +1479,7 @@
<!-- 价格 -->
<div class="form-group">
<label class="form-label">价格</label>
<label class="form-label">价格(销售价)</label>
<input type="number" class="form-input" id="editPrice" placeholder="请输入价格" step="0.01">
</div>
@ -1459,7 +1490,7 @@
</div>
<!-- 斤重 -->
<div class="form-group">
<div class="form-group" style="display: none;">
<label class="form-label">斤重</label>
<input type="text" class="form-input" id="editGrossWeight" placeholder="请输入斤重">
</div>
@ -1485,6 +1516,11 @@
<h3>选择规格</h3>
<button class="close-btn" onclick="hideEditSpecSelectModal()">×</button>
</div>
<div style="padding: 0 20px 10px 20px;">
<div style="padding: 8px; background-color: #f5f5f5; border-radius: 4px; font-size: 12px; color: #666; text-align: left;">
按重量选择该批次货最多的重量区间
</div>
</div>
<div class="select-search">
<input type="text" id="editSpecSearchInput" placeholder="搜索规格" oninput="filterEditSpecOptions()" style="width: 100%; padding: 10px; border: 1px solid #d9d9d9; border-radius: 8px; font-size: 14px;">
</div>
@ -1507,6 +1543,11 @@
<h3>选择货源类型</h3>
<button class="close-btn" onclick="hideEditSourceTypeSelectModal()">×</button>
</div>
<div style="padding: 10px 20px; background-color: #f0f8ff; border-radius: 4px; margin: 0 20px; font-size: 12px; color: #1890ff;">
<div>平台货源: 直接包场货源</div>
<div>鸡场直销: 鸡场直销货源</div>
<div>第三方货源: 贸易商货源</div>
</div>
<div class="select-search">
<input type="text" id="editSourceTypeSearchInput" placeholder="搜索货源类型" oninput="filterEditSourceTypeOptions()" style="width: 100%; padding: 10px; border: 1px solid #d9d9d9; border-radius: 8px; font-size: 14px;">
</div>
@ -1573,6 +1614,10 @@
<h3>选择蛋黄类型</h3>
<button class="close-btn" onclick="hideEditYolkSelectModal()">×</button>
</div>
<div style="padding: 10px 20px; background-color: #fff3cd; border: 1px solid #ffeeba; border-radius: 4px; margin: 0 20px; font-size: 12px; color: #856404;">
<div>请按实际情况选择蛋黄颜色,对于脏次或者冻库蛋不知道蛋黄颜色的情况下可以填写未知</div>
<div>(如果有色卡可以在货源描述里面填写色度)</div>
</div>
<div class="select-search">
<input type="text" id="editYolkSearchInput" placeholder="搜索蛋黄类型" oninput="filterEditYolkOptions()" style="width: 100%; padding: 10px; border: 1px solid #d9d9d9; border-radius: 8px; font-size: 14px;">
</div>
@ -1669,16 +1714,16 @@
let editSelectedProvince = '';
let editSelectedCity = '';
let editSelectedDistrict = '';
let editAllSourceTypes = ['平台货源', '三方认证', '三方未认证'];
let editAllSourceTypes = ['平台货源', '鸡场直销', '第三方货源'];
let editFilteredSourceTypes = [...editAllSourceTypes];
let editSelectedSourceType = '';
let editAllCategories = ['粉壳', '褐壳', '绿壳', '白壳'];
let editFilteredCategories = [...editAllCategories];
let editSelectedCategory = '';
let editAllProductNames = ['罗曼粉', '伊莎粉', '罗曼灰', '海蓝灰', '海蓝褐', '绿壳', '双黄蛋'];
let editAllProductNames = ['罗曼粉', '伊莎粉', '罗曼灰', '海蓝灰', '海蓝褐', '绿壳', '粉一', '粉三', '粉八', '京粉1号', '京红', '京粉6号', '京粉3号', '农大系列', '黑鸡土蛋', '大午金凤', '黑凤'];
let editFilteredProductNames = [...editAllProductNames];
let editSelectedProductName = '';
let editAllYolkTypes = ['红心', '黄心', '双色'];
let editAllYolkTypes = ['红心', '黄心', '双色', '未知'];
let editFilteredYolkTypes = [...editAllYolkTypes];
let editSelectedYolk = '';
let editFilteredContacts = [];
@ -1831,22 +1876,22 @@
}
// 规格选择功能
let allSpecOptions = ['格子装', '散托', '不限规格', '净重47+', '净重46-47', '净重45-46', '净重44-45', '净重43-44', '净重42-43', '净重41-42', '净重40-41', '净重39-40', '净重38-39', '净重37-39', '净重37-38', '净重36-38', '净重36-37', '净重35-36', '净重34-35', '净重33-34', '净重32-33', '净重32-34', '净重31-32', '净重30-35', '净重30-34', '净重30-32', '净重30-31', '净重29-31', '净重29-30', '净重28-29', '净重28以下', '毛重52以上', '毛重50-51', '毛重48-49', '毛重47-48', '毛重46-47', '毛重45-47', '毛重45-46', '毛重44-45', '毛重43-44', '毛重42-43', '毛重41-42', '毛重40-41', '毛重38-39', '毛重36-37', '毛重34-35', '毛重32-33', '毛重30-31', '毛重30以下'];
let allSpecOptions = ['净重47+', '净重46-47', '净重45-46', '净重44-45', '净重43-44', '净重42-43', '净重41-42', '净重40-41', '净重39-40', '净重38-39', '净重37-39', '净重37-38', '净重36-38', '净重36-37', '净重35-36', '净重34-35', '净重33-34', '净重32-33', '净重32-34', '净重31-32', '净重30-35', '净重30-34', '净重30-32', '净重30-31', '净重29-31', '净重29-30', '净重28-29', '净重28以下', '毛重52以上', '毛重50-51', '毛重48-49', '毛重47-48', '毛重46-47', '毛重45-47', '毛重45-46', '毛重44-45', '毛重43-44', '毛重42-43', '毛重41-42', '毛重40-41', '毛重38-39', '毛重36-37', '毛重34-35', '毛重32-33', '毛重30-31', '毛重30以下'];
let filteredSpecOptions = [...allSpecOptions];
let selectedSpec = '';
// 货源类型选择功能
let allSourceTypeOptions = ['平台货源', '三方认证', '三方未认证'];
let allSourceTypeOptions = ['平台货源', '鸡场直销', '第三方货源'];
let filteredSourceTypeOptions = [...allSourceTypeOptions];
let selectedSourceType = '';
// 商品名称选择功能
let allProductNameOptions = ['罗曼粉', '伊莎粉', '罗曼灰', '海蓝灰', '海蓝褐', '绿壳', '双黄蛋'];
let allProductNameOptions = ['罗曼粉', '伊莎粉', '罗曼灰', '海蓝灰', '海蓝褐', '绿壳', '粉一', '粉三', '粉八', '京粉1号', '京红', '京粉6号', '京粉3号', '农大系列', '黑鸡土蛋', '大午金凤', '黑凤'];
let filteredProductNameOptions = [...allProductNameOptions];
let selectedProductName = '';
// 蛋黄类型选择功能
let allYolkOptions = ['红心', '黄心', '双色'];
let allYolkOptions = ['红心', '黄心', '双色', '未知'];
let filteredYolkOptions = [...allYolkOptions];
let selectedYolk = '';
@ -2751,7 +2796,6 @@
let selectedProvince = '';
let selectedCity = '';
let selectedDistrict = '';
let filteredProvinces = [...allRegionOptions];
// 显示地区选择弹窗
@ -2774,7 +2818,6 @@
function generateRegionOptions() {
const provinceList = document.getElementById('provinceList');
const cityList = document.getElementById('cityList');
const districtList = document.getElementById('districtList');
// 生成省份选项
provinceList.innerHTML = '';
@ -2785,12 +2828,9 @@
option.onclick = () => {
selectedProvince = province.province;
selectedCity = '';
selectedDistrict = '';
updateRegionDisplay();
// 生成城市选项
generateCityOptions(province.cities);
// 清空区县选项
districtList.innerHTML = '';
};
provinceList.appendChild(option);
});
@ -2799,7 +2839,6 @@
// 生成城市选项
function generateCityOptions(cities) {
const cityList = document.getElementById('cityList');
const districtList = document.getElementById('districtList');
cityList.innerHTML = '';
cities.forEach(city => {
@ -2808,34 +2847,14 @@
option.textContent = city.city;
option.onclick = () => {
selectedCity = city.city;
selectedDistrict = '';
updateRegionDisplay();
// 生成区县选项
generateDistrictOptions(city.districts);
};
cityList.appendChild(option);
});
}
// 生成区县选项
function generateDistrictOptions(districts) {
const districtList = document.getElementById('districtList');
districtList.innerHTML = '';
districts.forEach(district => {
const option = document.createElement('div');
option.className = 'select-item';
option.textContent = district;
option.onclick = () => {
selectedDistrict = district;
updateRegionDisplay();
};
option.ondblclick = () => {
// 双击区县直接确认整个地区选择
selectedDistrict = district;
// 双击城市直接确认整个地区选择
selectedCity = city.city;
updateRegionDisplay();
// 构建完整的地区字符串
const regionString = `${selectedProvince} ${selectedCity} ${selectedDistrict}`;
const regionString = `${selectedProvince} ${selectedCity}`;
// 设置到表单
document.getElementById('regionDisplayText').textContent = regionString;
document.getElementById('regionValue').value = regionString;
@ -2843,17 +2862,22 @@
hideRegionSelectModal();
saveFormData(); // 保存选择
};
districtList.appendChild(option);
cityList.appendChild(option);
});
// 使用requestAnimationFrame确保滚动操作在浏览器下一次重绘前执行
requestAnimationFrame(() => {
cityList.scrollTop = 0;
});
}
// 更新地区显示
function updateRegionDisplay() {
const currentRegion = document.getElementById('currentRegion');
let displayText = '当前选择: ';
if (selectedProvince && selectedCity && selectedDistrict) {
displayText += `${selectedProvince} ${selectedCity} ${selectedDistrict}`;
} else if (selectedProvince && selectedCity) {
if (selectedProvince && selectedCity) {
displayText += `${selectedProvince} ${selectedCity}`;
} else if (selectedProvince) {
displayText += selectedProvince;
@ -2871,32 +2895,26 @@
// 重置选择
selectedProvince = '';
selectedCity = '';
selectedDistrict = '';
// 先尝试直接查找区县
let foundDistrict = false;
// 先尝试直接查找城市
let foundCity = false;
for (let i = 0; i < allRegionOptions.length; i++) {
const province = allRegionOptions[i];
for (let j = 0; j < province.cities.length; j++) {
const city = province.cities[j];
for (let k = 0; k < city.districts.length; k++) {
const district = city.districts[k];
if (district.toLowerCase().includes(searchKeyword)) {
// 找到匹配的区县,自动填充省市区
selectedProvince = province.province;
selectedCity = city.city;
selectedDistrict = district;
foundDistrict = true;
break;
}
if (city.city.toLowerCase().includes(searchKeyword)) {
// 找到匹配的城市,自动填充省市
selectedProvince = province.province;
selectedCity = city.city;
foundCity = true;
break;
}
if (foundDistrict) break;
}
if (foundDistrict) break;
if (foundCity) break;
}
if (foundDistrict) {
// 如果找到区县,只显示对应的省份
if (foundCity) {
// 如果找到城市,只显示对应的省份
filteredProvinces = allRegionOptions.filter(province => province.province === selectedProvince);
generateRegionOptions();
@ -2914,39 +2932,27 @@
}
option.onclick = () => {
selectedCity = city.city;
selectedDistrict = '';
updateRegionDisplay();
generateDistrictOptions(city.districts);
};
cityList.appendChild(option);
});
// 如果是选中的城市,生成区县选项
if (city.city === selectedCity) {
generateDistrictOptions(city.districts);
}
// 使用requestAnimationFrame确保滚动操作在浏览器下一次重绘前执行
requestAnimationFrame(() => {
cityList.scrollTop = 0;
});
}
// 更新区县选项的选中状态
const districtList = document.getElementById('districtList');
const districtOptions = districtList.querySelectorAll('.select-item');
districtOptions.forEach(option => {
if (option.textContent === selectedDistrict) {
option.classList.add('selected');
}
});
} else {
// 否则按原逻辑过滤
filteredProvinces = allRegionOptions.filter(province => {
return province.province.toLowerCase().includes(searchKeyword) ||
province.cities.some(city => city.city.toLowerCase().includes(searchKeyword) ||
city.districts.some(district => district.toLowerCase().includes(searchKeyword)));
province.cities.some(city => city.city.toLowerCase().includes(searchKeyword));
});
generateRegionOptions();
// 清空城市和区县选项
document.getElementById('cityList').innerHTML = '';
document.getElementById('districtList').innerHTML = '';
// 清空城市选项
const cityList = document.getElementById('cityList');
cityList.innerHTML = '';
}
updateRegionDisplay();
@ -2954,24 +2960,17 @@
// 确认地区选择
function confirmRegionSelection() {
if (selectedProvince && selectedCity && selectedDistrict) {
if (selectedProvince && selectedCity) {
const regionDisplayText = document.getElementById('regionDisplayText');
const regionValue = document.getElementById('regionValue');
const regionText = `${selectedProvince} ${selectedCity} ${selectedDistrict}`;
const regionText = `${selectedProvince} ${selectedCity}`;
regionDisplayText.textContent = regionText;
regionValue.value = regionText;
saveFormData(); // 保存选择
}
hideRegionSelectModal();
}
// 确认创建货源时,获取隐藏域的值
function addSupply() {
const spec = document.getElementById('specValue').value;
const region = document.getElementById('regionValue').value;
// 继续原有逻辑...
}
// 加载联系人数据
async function loadContacts() {
try {
@ -3404,7 +3403,6 @@
selectedSpec = '';
selectedProvince = '';
selectedCity = '';
selectedDistrict = '';
selectedSourceType = '';
selectedProductName = '';
selectedYolk = '';
@ -3501,7 +3499,6 @@
if (formData.selectedSpec) selectedSpec = formData.selectedSpec;
if (formData.selectedProvince) selectedProvince = formData.selectedProvince;
if (formData.selectedCity) selectedCity = formData.selectedCity;
if (formData.selectedDistrict) selectedDistrict = formData.selectedDistrict;
// 为所有下拉框触发change事件,确保UI完全同步
const dropdownElements = [productName, yolk, sourceType, contactId];
@ -3528,7 +3525,6 @@
selectedSpec = formData.selectedSpec || '';
selectedProvince = formData.selectedProvince || '';
selectedCity = formData.selectedCity || '';
selectedDistrict = formData.selectedDistrict || '';
selectedSourceType = formData.selectedSourceType || '';
selectedProductName = formData.selectedProductName || '';
selectedYolk = formData.selectedYolk || '';
@ -3789,7 +3785,6 @@
selectedSpec: selectedSpec || '',
selectedProvince: selectedProvince || '',
selectedCity: selectedCity || '',
selectedDistrict: selectedDistrict || '',
selectedSourceType: selectedSourceType || '',
selectedProductName: selectedProductName || '',
selectedYolk: selectedYolk || '',
@ -3809,7 +3804,15 @@
}
// 创建货源
// 防止重复提交的标志位
let isSubmitting = false;
async function addSupply() {
// 防止重复提交
if (isSubmitting) {
return;
}
// 获取当前登录用户信息
const userInfo = checkLogin();
if (!userInfo) return;
@ -3870,6 +3873,12 @@
}
try {
// 设置为提交中状态,禁用按钮
isSubmitting = true;
const submitBtn = document.querySelector('.modal-btn-primary');
submitBtn.disabled = true;
submitBtn.textContent = '创建中...';
const response = await fetch('/api/supplies/create', {
method: 'POST',
headers: {
@ -3895,6 +3904,12 @@
} catch (error) {
console.error('创建货源失败:', error);
alert('创建失败: 网络错误');
} finally {
// 恢复提交状态,启用按钮
isSubmitting = false;
const submitBtn = document.querySelector('.modal-btn-primary');
submitBtn.disabled = false;
submitBtn.textContent = '创建';
}
}

Loading…
Cancel
Save