163 lines
7.4 KiB
PHP
163 lines
7.4 KiB
PHP
<?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">×</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'; ?>
|