Files
MES/app/views/Admin/productModelEdit.php
2026-08-08 18:28:49 +08:00

163 lines
7.4 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
$activeMenu = 'productModel';
include APP_PATH . 'app/views/layouts/admin_header.php';
?>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="box box-warning">
<div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-edit"></i> 编辑产品型号</h3>
</div>
<form method="post" action="">
<input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($csrfToken); ?>">
<div class="box-body">
<?php if (!empty($error)): ?>
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
<i class="icon fa fa-ban"></i> <?php echo htmlspecialchars($error); ?>
</div>
<?php endif; ?>
<div class="form-group">
<label>类型 <span class="text-danger">*</span></label>
<select name="type" id="typeSelect" class="form-control" required>
<option value="">-- 请选择类型 --</option>
<?php if (!empty($typeConfigs)): ?>
<?php foreach ($typeConfigs as $cfg): ?>
<option value="<?php echo htmlspecialchars($cfg['type_name']); ?>" <?php echo (($model['type'] ?? '') === $cfg['type_name']) ? 'selected' : ''; ?>>
<?php echo htmlspecialchars($cfg['type_name']); ?>
</option>
<?php endforeach; ?>
<?php else: ?>
<?php foreach (['成品', '电池', '外壳', '外壳颜色', '包装', '半成品', '配件'] as $t): ?>
<option value="<?php echo $t; ?>" <?php echo (($model['type'] ?? '') === $t) ? 'selected' : ''; ?>>
<?php echo $t; ?>
</option>
<?php endforeach; ?>
<?php endif; ?>
</select>
</div>
<div class="form-group" id="productTypeGroup">
<label id="productTypeLabel">产品类型 <span class="text-danger">*</span></label>
<input type="text" name="product_type" id="productTypeInput" class="form-control" value="<?php echo htmlspecialchars($model['product_type'] ?? ''); ?>" placeholder="如:电池、外壳,成品" required>
</div>
<div class="form-group" id="modelCodeGroup">
<label>产品型号 <span class="text-danger">*</span></label>
<input type="text" name="model_code" id="modelCodeInput" class="form-control" value="<?php echo htmlspecialchars($model['model_code']); ?>" required>
</div>
<div class="form-group" id="colorGroup">
<label>颜色</label>
<input type="text" name="color" id="colorInput" class="form-control" value="<?php echo htmlspecialchars($model['color'] ?? ''); ?>" placeholder="如:珍珠白、深空灰">
</div>
<div class="form-group">
<label>产品说明</label>
<textarea name="description" class="form-control" rows="3"><?php echo htmlspecialchars($model['model_desc'] ?? ''); ?></textarea>
</div>
<script>
(function(){
var $typeSel = $('#typeSelect');
var $ptGroup = $('#productTypeGroup');
var $ptLabel = $('#productTypeLabel');
var $ptInput = $('#productTypeInput');
var $modelCodeGroup = $('#modelCodeGroup');
var $modelCodeInput = $('#modelCodeInput');
var $colorGroup = $('#colorGroup');
var $colorInput = $('#colorInput');
// 编辑时原始值
var editProductType = <?php echo json_encode($model['product_type'] ?? '', JSON_UNESCAPED_UNICODE); ?>;
var editModelCode = <?php echo json_encode($model['model_code'] ?? '', JSON_UNESCAPED_UNICODE); ?>;
var editColor = <?php echo json_encode($model['color'] ?? '', JSON_UNESCAPED_UNICODE); ?>;
// 类型配置数据(从服务端传入)
var typeConfigs = <?php echo json_encode($typeConfigs ?? [], JSON_UNESCAPED_UNICODE); ?>;
// 构建类型名→配置映射
var typeConfigMap = {};
if (Array.isArray(typeConfigs)) {
typeConfigs.forEach(function(cfg) {
typeConfigMap[cfg.type_name] = cfg;
});
}
function updateProductTypeField() {
var t = $typeSel.val();
var cfg = typeConfigMap[t] || {};
// 产品类型输入框(三态:hidden/readonly/editable
var ptState = cfg.product_type_state || 'editable';
if (ptState === 'hidden') {
$ptGroup.hide();
$ptInput.removeAttr('required').val('');
} else {
$ptGroup.show();
var label = cfg.product_type_label || '产品类型';
var field = cfg.product_type_field || 'product_type';
var placeholder = cfg.product_type_placeholder || '';
if (!placeholder) {
placeholder = '如:' + label;
}
$ptLabel.html(label + (ptState === 'editable' ? ' <span class="text-danger">*</span>' : ''));
$ptInput.attr({name: field, placeholder: placeholder});
if (ptState === 'readonly') {
$ptInput.prop({readonly: true, required: false});
} else {
$ptInput.prop({readonly: false, required: true});
}
// 编辑时恢复原始值
if (editProductType) {
$ptInput.val(editProductType);
}
}
// 产品型号输入框(三态:hidden/readonly/editable
var mcState = cfg.model_code_state || 'editable';
if (mcState === 'hidden') {
$modelCodeGroup.hide();
$modelCodeInput.removeAttr('required').val('');
} else {
$modelCodeGroup.show();
if (mcState === 'readonly') {
$modelCodeInput.prop({readonly: true, required: false});
} else {
$modelCodeInput.prop({readonly: false, required: true});
}
if (editModelCode) {
$modelCodeInput.val(editModelCode);
}
}
// 颜色输入框(三态:hidden/readonly/editable
var cState = cfg.color_state || 'editable';
if (cState === 'hidden') {
$colorGroup.hide();
$colorInput.val('');
} else {
$colorGroup.show();
if (cState === 'readonly') {
$colorInput.prop('readonly', true);
} else {
$colorInput.prop('readonly', false);
}
if (editColor) {
$colorInput.val(editColor);
}
}
}
$typeSel.on('change', updateProductTypeField);
updateProductTypeField();
})();
</script>
</div>
<div class="box-footer">
<button type="submit" class="btn btn-warning"><i class="fa fa-save"></i> 更新</button>
<a href="<?php echo BASE_URL; ?>/Admin/productModel" class="btn btn-default"><i class="fa fa-arrow-left"></i> 返回</a>
</div>
</form>
</div>
</div>
</div>
<?php include APP_PATH . 'app/views/layouts/admin_footer.php'; ?>