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

152 lines
6.8 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-primary">
<div class="box-header with-border">
<h3 class="box-title"><i class="fa fa-plus"></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 htmlspecialchars($cfg['type_name']); ?></option>
<?php endforeach; ?>
<?php else: ?>
<option value="成品">成品</option>
<option value="电池">电池</option>
<option value="外壳">外壳</option>
<option value="外壳颜色">外壳颜色</option>
<option value="包装">包装</option>
<option value="半成品">半成品</option>
<option value="配件">配件</option>
<?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" 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" placeholder="如:T8" required>
</div>
<div class="form-group" id="colorGroup">
<label>颜色</label>
<input type="text" name="color" id="colorInput" class="form-control" placeholder="如:珍珠白、深空灰">
</div>
<div class="form-group">
<label>产品说明</label>
<textarea name="description" class="form-control" rows="3" placeholder="产品描述信息"></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 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';
var field = cfg.product_type_field || 'product_type';
// 当 product_type_field === 'color' 且颜色框可见时,
// 隐藏产品类型输入框,避免与颜色输入框 name="color" 冲突
var cState = cfg.color_state || 'editable';
var hidePtForColor = (field === 'color' && cState !== 'hidden');
if (ptState === 'hidden' || hidePtForColor) {
$ptGroup.hide();
$ptInput.removeAttr('required');
} else {
$ptGroup.show();
var label = cfg.product_type_label || '产品类型';
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});
}
}
// 产品型号输入框(三态: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});
}
}
// 颜色输入框(三态: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);
}
}
}
$typeSel.on('change', updateProductTypeField);
updateProductTypeField();
})();
</script>
</div>
<div class="box-footer">
<button type="submit" class="btn btn-primary"><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'; ?>