Browse Source

1.品質不良單

2.修正 mkt/database.php 的 .env 路徑
gary
gary_chen\gary_chen 1 year ago
parent
commit
f96b4fa198
  1. 1
      .gitignore
  2. 3
      mkt/database.php
  3. 281
      wms/ngfeedback-create.php
  4. 107
      wms/ngfeedback-update-reply.php
  5. 389
      wms/ngfeedback-update.php

1
.gitignore

@ -23,3 +23,4 @@ wms/excel/estimated_shipping_date_report.xlsx
*.docx *.docx
wms/mkt/WriteOffRepair.xlsx wms/mkt/WriteOffRepair.xlsx
wms/contract/images/contracts wms/contract/images/contracts
wms/test.php

3
mkt/database.php

@ -1,6 +1,6 @@
<?php <?php
$envFile = __DIR__ . '\.env'; // .env 文件的路径 $envFile = __DIR__ . '\.env'; // .env 文件的路径
$envFile = __DIR__ . '/../.env'; // .env 文件的路径
if (file_exists($envFile)) { if (file_exists($envFile)) {
$lines = file($envFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $lines = file($envFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if ($lines !== false) { if ($lines !== false) {
@ -18,6 +18,7 @@ $host = getenv('DB_HOST');
$dbuser = getenv('DB_USERNAME'); $dbuser = getenv('DB_USERNAME');
$dbpassword = getenv('DB_PASSWORD'); $dbpassword = getenv('DB_PASSWORD');
$dbname = getenv('DB_DATABASE'); $dbname = getenv('DB_DATABASE');
// exit;
$link = mysqli_connect($host,$dbuser,$dbpassword,$dbname); $link = mysqli_connect($host,$dbuser,$dbpassword,$dbname);
//print_r($link);exit; //print_r($link);exit;
if($link){ if($link){

281
wms/ngfeedback-create.php

@ -3,154 +3,193 @@ require_once "database.php";
include "header.php"; include "header.php";
include "ngfeedback-create-submit.php"; include "ngfeedback-create-submit.php";
$sql = "
SELECT
facilityno
FROM facility
";
$result = mysqli_query($link, $sql);
$opts = mysqli_fetch_all($result, MYSQLI_ASSOC);
?> ?>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tarekraafat/autocomplete.js@10.2.7/dist/css/autoComplete.02.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.15.2/css/selectize.default.min.css" integrity="sha512-pTaEn+6gF1IeWv3W1+7X7eM60TFu/agjgoHmYhAfLEU8Phuf6JKiiE8YmsNC0aCgQv4192s4Vai8YZ6VNM6vyQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.15.2/js/selectize.min.js" integrity="sha512-IOebNkvA/HZjMM7MxL0NYeLYEalloZ8ckak+NDtOViP7oiYzG5vn6WVXyrJDiJPhl4yRdmNAG49iuLmhkUdVsQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<link rel="stylesheet" href="/wms/css/autoComplete.02.min.css">
<style> <style>
select, textarea { select,
margin: 8px 0; textarea {
} margin: 8px 0;
.autoComplete_wrapper { width: 100%; } }
.autoComplete_wrapper > input,
input[type=file] + .img-preview, .autoComplete_wrapper {
input[type=file], textarea { width: 100%;
width: 100%; }
padding: 12px 20px;
margin: 8px 0; .autoComplete_wrapper>input,
display: block; input[type=file]+.img-preview,
border: 1px solid #ccc; input[type=file],
border-radius: 4px; textarea {
box-sizing: border-box; width: 100%;
font-size: inherit; padding: 12px 20px;
height: auto; margin: 8px 0;
} display: block;
.img-preview { border: 1px solid #ccc;
position: relative; border-radius: 4px;
background-color: var(--bs-white, #fff); box-sizing: border-box;
} font-size: inherit;
.img-preview > .btn-icon { height: auto;
position: absolute; }
top: 1px;
right: 1px; .img-preview {
font-weight: 600; position: relative;
cursor: pointer; background-color: var(--bs-white, #fff);
} }
.btn-icon > svg {
width: 32px; .img-preview>.btn-icon {
height: 32px; position: absolute;
} top: 1px;
.autoComplete_wrapper > ul[role=listbox] { right: 1px;
margin-top: -12px; font-weight: 600;
} cursor: pointer;
input[type=file][accept^=image].preview { }
display: none;
} .btn-icon>svg {
input[type=file][accept^=image]:not(.preview) + .img-preview { width: 32px;
display: none; height: 32px;
} }
.autoComplete_wrapper>ul[role=listbox] {
margin-top: -12px;
}
input[type=file][accept^=image].preview {
display: none;
}
input[type=file][accept^=image]:not(.preview)+.img-preview {
display: none;
}
</style> </style>
<div class="container"> <div class="container">
<form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" enctype="multipart/form-data"> <form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" enctype="multipart/form-data">
<input type="hidden" name="token" value="<?=$token;?>"> <input type="hidden" name="token" value="<?= $token; ?>">
<input type="hidden" name="creater" value="<?=$user_id;?>"> <input type="hidden" name="creater" value="<?= $user_id; ?>">
<div class="form-group"> <div class="form-group">
<div class="col-md-3"> <div class="row">
<label for="facilityno">電梯ID</label> <div class="col-md-3">
<input type="text" name="facilityno" id="facilityno" maxlength="15" required> <label for="facilityno">電梯ID</label>
<!-- <input type="text" name="facilityno" id="facilityno" maxlength="15" required> -->
<select name="facilityno" id="facilityno" required>
<?php
echo "<option value=''>請選擇</option>";
foreach($opts as $opt){
echo "<option value='" . $opt["facilityno"] . "'>" . $opt["facilityno"] . "</option>";
}
?>
</select>
</div>
<div class="col-md-3">
<label for="sitename">現場名稱</label>
<input type="text" name="sitename" id="sitename" maxlength="20">
</div>
<div class="col-md-6">
<label for="siteaddress">現場地址</label>
<input type="text" name="siteaddress" id="siteaddress" maxlength="255" required>
</div>
</div> </div>
<div class="col-md-3">
<label for="sitename">現場名稱</label>
<input type="text" name="sitename" id="sitename" maxlength="20">
</div>
<div class="col-md-6">
<label for="siteaddress">現場地址</label>
<input type="text" name="siteaddress" id="siteaddress" maxlength="255" required>
</div>
<div class="col-md-6"> <div class="col-md-6">
<label for="ngdescribe">簡述不良內容</label> <label for="ngdescribe">簡述不良內容</label>
<textarea name="ngdescribe" id="ngdescribe" rows="4" maxlength="128" required></textarea> <textarea name="ngdescribe" id="ngdescribe" rows="4" maxlength="128" required></textarea>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label for="ngimage">照片上傳</label> <label for="ngimage">照片上傳</label>
<input type="file" name="ngimage" id="ngimage" accept="image/*" required> <input type="file" name="ngimage" id="ngimage" accept="image/*" required>
<div id="ngimage-preview" class="img-preview"> <div id="ngimage-preview" class="img-preview">
<img src="#" alt="preview image" style="margin: 0 auto; width: 100%; height: auto; border-radius: 0; float: none;"/> <img src="#" alt="preview image" style="margin: 0 auto; width: 100%; height: auto; border-radius: 0; float: none;" />
<i class="btn-icon bi bi-x-square-fill" data-pid="ngimage" alt="移除照片" role="button" onclick="javascript:image_remove(this)" style="color: var(--bs-red, #dc3545);"> <i class="btn-icon bi bi-x-square-fill" data-pid="ngimage" alt="移除照片" role="button" onclick="javascript:image_remove(this)" style="color: var(--bs-red, #dc3545);">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-x-square-fill" viewBox="0 0 16 16"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-x-square-fill" viewBox="0 0 16 16">
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm3.354 4.646L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 1 1 .708-.708z"/> <path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm3.354 4.646L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 1 1 .708-.708z" />
</svg> </svg>
</i> </i>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="col-md-12 "> <div class="col-md-12 ">
<button type="submit" class="btn btn-primary btn-lg">點擊後建立不良反饋單</button> <button type="submit" class="btn btn-primary btn-lg">點擊後建立不良反饋單</button>
</div> </div>
</div> </div>
</form> </form>
</div> </div>
<script src="https://cdn.jsdelivr.net/npm/@tarekraafat/autocomplete.js@10.2.7/dist/autoComplete.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@tarekraafat/autocomplete.js@10.2.7/dist/autoComplete.min.js"></script>
<script> <script>
function image_preview (event) { $(document).ready(function() {
var input = event.target; // $('#facilityno').select2();
var image = document.querySelector(`#${input.id}-preview > img`); $("#facilityno").selectize();
if (input.files && input.files[0]) { });
var reader = new FileReader();
reader.onload = function(e) { function image_preview(event) {
image.src = e.target.result; var input = event.target;
$(`#${input.id}`).addClass("preview"); var image = document.querySelector(`#${input.id}-preview > img`);
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function(e) {
image.src = e.target.result;
$(`#${input.id}`).addClass("preview");
}
reader.readAsDataURL(input.files[0]);
return;
} }
reader.readAsDataURL(input.files[0]); $(`#${input.id}`).removeClass("preview");
return;
} }
$(`#${input.id}`).removeClass("preview");
}
function image_remove (el) {
var pid = $(el).attr("data-pid");
var input = document.querySelector(`input#${pid}`);
input.value = "";
$(`#${pid}`).removeClass("preview");
}
$(function() {
$("#ngimage").on("change", function (event) {
image_preview(event);
}).trigger("change");
const autoCompleteJS = new autoComplete({ function image_remove(el) {
selector: "#facilityno", var pid = $(el).attr("data-pid");
data: { var input = document.querySelector(`input#${pid}`);
src: async () => { input.value = "";
if (!autoCompleteJS.input.value || autoCompleteJS.input.value.length < 2) { $(`#${pid}`).removeClass("preview");
return []; }
} $(function() {
try { $("#ngimage").on("change", function(event) {
const source = await fetch('/wms/ngfeedbackapi.php?' + new URLSearchParams({ image_preview(event);
type: "facilityno", }).trigger("change");
term: autoCompleteJS.input.value,
rn: 10, const autoCompleteJS = new autoComplete({
})); selector: "#facilityno",
const data = await source.json(); data: {
return data.data; src: async () => {
} catch (error) { if (!autoCompleteJS.input.value || autoCompleteJS.input.value.length < 2) {
return error; return [];
} }
try {
const source = await fetch('/wms/ngfeedbackapi.php?' + new URLSearchParams({
type: "facilityno",
term: autoCompleteJS.input.value,
rn: 10,
}));
const data = await source.json();
return data.data;
} catch (error) {
return error;
}
},
keys: ["facilityno", "address"],
}, },
keys: ["facilityno", "address"], resultItem: {
}, highlight: false
resultItem: { },
highlight: false events: {
}, input: {
events: { selection: (event) => {
input: { const selection = event.detail.selection.value;
selection: (event) => { autoCompleteJS.input.value = selection["facilityno"];
const selection = event.detail.selection.value; $("#siteaddress").val(selection["address"]);
autoCompleteJS.input.value = selection["facilityno"]; }
$("#siteaddress").val(selection["address"]);
} }
} }
} });
}); });
});
</script> </script>
<?php <?php
include "footer.php"; include "footer.php";

107
wms/ngfeedback-update-reply.php

@ -27,36 +27,40 @@ $result = $stmt->get_result();
$opts = mysqli_fetch_all($result, MYSQLI_ASSOC); $opts = mysqli_fetch_all($result, MYSQLI_ASSOC);
?> ?>
<style> <style>
select, textarea { select,
margin: 8px 0; textarea {
} margin: 8px 0;
div.input-style, textarea { }
width: 100%;
padding: 12px 20px; div.input-style,
margin: 8px 0; textarea {
display: block; width: 100%;
border: 1px solid #ccc; padding: 12px 20px;
border-radius: 4px; margin: 8px 0;
box-sizing: border-box; display: block;
background: var(--bs-white, #fff); border: 1px solid #ccc;
white-space: pre; border-radius: 4px;
} box-sizing: border-box;
div.input-style:empty:after { background: var(--bs-white, #fff);
content: " "; white-space: pre;
} }
div.input-style:empty:after {
content: " ";
}
</style> </style>
<div class="container"> <div class="container">
<form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" enctype="multipart/form-data"> <form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" enctype="multipart/form-data">
<input type="hidden" name="token" value="<?=$token;?>"> <input type="hidden" name="token" value="<?= $token; ?>">
<input type="hidden" name="user_id" value="<?=$user_id;?>"> <input type="hidden" name="user_id" value="<?= $user_id; ?>">
<input type="hidden" name="no" value="<?=$data["id"];?>"> <input type="hidden" name="no" value="<?= $data["id"]; ?>">
<div class="form-group"> <div class="form-group">
<div class="col-md-3"> <div class="col-md-3">
<label for="responder">責任單位回覆人</label> <label for="responder">責任單位回覆人</label>
<select name="responder" id="responder" <?echo $data["responsibledepartmentleader"] == $user_id ? "" : "readonly";?>required > <select name="responder" id="responder" <? echo $data["responsibledepartmentleader"] == $user_id ? "" : "readonly"; ?>required>
<?php <?php
foreach ($opts as $opt) { foreach ($opts as $opt) {
echo "<option value='".$opt["accountid"]."' ".($opt["accountid"] == $data["responder"] ? 'selected' : '').">".sprintf("%s (%s)", $opt["name"], $opt["accountid"])."</option>"; echo "<option value='" . $opt["accountid"] . "' " . ($opt["accountid"] == $data["responder"] ? 'selected' : '') . ">" . sprintf("%s (%s)", $opt["name"], $opt["accountid"]) . "</option>";
} }
?> ?>
</select> </select>
@ -79,7 +83,7 @@ div.input-style:empty:after {
<div class="form-group"> <div class="form-group">
<div class="col-md-6"> <div class="col-md-6">
<label for="replyhistory">回覆詳細</label> <label for="replyhistory">回覆詳細</label>
<textarea class="input-style" id="replyhistory" rows="6" style="resize: none;" disabled><?=$data["replyhistory"]?></textarea> <textarea class="input-style" id="replyhistory" rows="6" style="resize: none;" disabled><?= $data["replyhistory"] ?></textarea>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label for="replyinput">責任單位回覆</label> <label for="replyinput">責任單位回覆</label>
@ -88,83 +92,82 @@ div.input-style:empty:after {
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="col-md-12"> <div class="col-md-12">
<button type="submit" class="btn btn-primary btn-lg">點擊後更新不良反饋單</button> <button type="submit" class="btn btn-primary btn-lg">點擊後更新不良反饋單</button>
</div> </div>
</div> </div>
</form> </form>
</div> </div>
<div class="container"> <div class="container">
<form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" enctype="multipart/form-data"> <form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" enctype="multipart/form-data">
<div class="form-group"> <div class="form-group">
<div class="col-md-3"> <div class="col-md-3">
<h3 style="font-weight: 700;">品證部門回覆</h3> <h3 style="font-weight: 700;">品證部門回覆</h3>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<label for="verify">品證人員</label> <label for="verify">品證人員</label>
<div class="input-style" id="verify"><?=implode(" ", array($data["verify"], $data["verify_name"]))?></div> <div class="input-style" id="verify"><?= implode(" ", array($data["verify"], $data["verify_name"])) ?></div>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<label for="responsibledepartment">判定責任單位</label> <label for="responsibledepartment">判定責任單位</label>
<div class="input-style" id="responsibledepartment"><?=$data["responsibledepartment_name"]?></div> <div class="input-style" id="responsibledepartment"><?= $data["responsibledepartment_name"] ?></div>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<label for="responsibledepartmentleader">判定責任單位主管</label> <label for="responsibledepartmentleader">判定責任單位主管</label>
<div class="input-style" id="responsibledepartmentleader"><?=implode(" ", array($data["responsibledepartmentleader"], $data["responsibledepartmentleader_name"]))?></div> <div class="input-style" id="responsibledepartmentleader"><?= implode(" ", array($data["responsibledepartmentleader"], $data["responsibledepartmentleader_name"])) ?></div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="col-md-6"> <div class="col-md-6">
<label for="investigationreason">現場調查原因</label> <label for="investigationreason">現場調查原因</label>
<textarea class="input-style" id="investigationreason" rows="6" maxlength="128" style="resize: none;" disabled><?=$data["investigationreason"]?></textarea> <textarea class="input-style" id="investigationreason" rows="6" maxlength="128" style="resize: none;" disabled><?= $data["investigationreason"] ?></textarea>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label for="countermeasure">對策方法及再發防止</label> <label for="countermeasure">對策方法及再發防止</label>
<textarea class="input-style" id="countermeasure" rows="6" maxlength="128" style="resize: none;" disabled><?=$data["countermeasure"]?></textarea> <textarea class="input-style" id="countermeasure" rows="6" maxlength="128" style="resize: none;" disabled><?= $data["countermeasure"] ?></textarea>
</div> </div>
</div> </div>
</form> </form>
</div> </div>
<div class="container"> <div class="container">
<form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" enctype="multipart/form-data"> <form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" enctype="multipart/form-data">
<div class="form-group"> <div class="form-group">
<div class="col-md-3"> <div class="col-md-3">
<h3 style="font-weight: 700;">不良單基本資料</h3> <h3 style="font-weight: 700;">不良單基本資料</h3>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<label for="id">項次</label> <label for="id">項次</label>
<div class="input-style" id="id"><?=$data["id"]?></div> <div class="input-style" id="id"><?= $data["id"] ?></div>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<label for="create_at">反饋日期</label> <label for="create_at">反饋日期</label>
<div class="input-style" id="create_at"><?=$data["create_at"]?></div> <div class="input-style" id="create_at"><?= $data["create_at"] ?></div>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<label for="creater">不良單填寫人</label> <label for="creater">不良單填寫人</label>
<div class="input-style" id="creater"><?=implode(" ", array($data["creater"], $data["creater_name"]))?></div> <div class="input-style" id="creater"><?= implode(" ", array($data["creater"], $data["creater_name"])) ?></div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="col-md-3"> <div class="col-md-3">
<label for="facilityno">電梯ID</label> <label for="facilityno">電梯ID</label>
<div class="input-style" id="facilityno"><?=$data["facilityno"]?></div> <div class="input-style" id="facilityno"><?= $data["facilityno"] ?></div>
</div>
<div class="col-md-3">
<label for="sitename">現場名稱</label>
<div class="input-style" id="sitename"><?= $data["sitename"] ?></div>
</div> </div>
<div class="col-md-3">
<label for="sitename">現場名稱</label>
<div class="input-style" id="sitename"><?=$data["sitename"]?></div>
</div>
<div class="col-md-6"> <div class="col-md-6">
<label for="siteaddress">現場地址</label> <label for="siteaddress">現場地址</label>
<div class="input-style" id="siteaddress"><?=$data["siteaddress"]?></div> <div class="input-style" id="siteaddress"><?= $data["siteaddress"] ?></div>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label for="ngdescribe">簡述不良內容</label> <label for="ngdescribe">簡述不良內容</label>
<textarea class="input-style" id="ngdescribe" rows="6" maxlength="128" style="resize: none;" disabled><?=$data["ngdescribe"]?></textarea> <textarea class="input-style" id="ngdescribe" rows="6" maxlength="128" style="resize: none;" disabled><?= $data["ngdescribe"] ?></textarea>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label for="ngimage">照片上傳</label> <label for="ngimage">照片上傳</label>
<div class="input-style" id="ngimage"><?php echo $data["ngimage"] ? "<img src='..".$data["ngimage"]."' style='margin: 0 auto; width: 100%; height: auto; border-radius: 0; float: none;'/>" : "";?></div> <div class="input-style" id="ngimage"><?php echo $data["ngimage"] ? "<img src='.." . $data["ngimage"] . "' style='margin: 0 auto; width: 100%; height: auto; border-radius: 0; float: none;'/>" : ""; ?></div>
</div> </div>
</div> </div>
</form> </form>
</div> </div>

389
wms/ngfeedback-update.php

@ -4,13 +4,15 @@ include "header.php";
include "ngfeedback-update-submit.php"; include "ngfeedback-update-submit.php";
$db_query = "SELECT *, $db_query = "
f_return_account_name(verify) as verify_name, SELECT *,
f_return_account_name(creater) as creater_name, f_return_account_name(verify) AS verify_name,
f_return_account_name(responsibledepartmentleader) as responsibledepartmentleader_name, f_return_account_name(creater) AS creater_name,
f_return_account_name(responder) as responder_name, f_return_account_name(responsibledepartmentleader) AS responsibledepartmentleader_name,
f_return_department_name(responsibledepartment) as responsibledepartment_name f_return_account_name(responder) AS responder_name,
FROM ngfeedback WHERE id = ?"; f_return_department_name(responsibledepartment) AS responsibledepartment_name
FROM ngfeedback WHERE id = ?
";
$stmt = $link->prepare($db_query); $stmt = $link->prepare($db_query);
// 此處僅有字串格式 // 此處僅有字串格式
$stmt->bind_param("i", ...[$_REQUEST["no"]]); $stmt->bind_param("i", ...[$_REQUEST["no"]]);
@ -19,204 +21,209 @@ $result = $stmt->get_result();
$data = mysqli_fetch_assoc($result); $data = mysqli_fetch_assoc($result);
$progress = array( $progress = array(
"0" => "待判定", "0" => "待判定",
"1" => "待處理", "1" => "待處理",
"2" => "處理中", "2" => "處理中",
"9" => "已完成" "9" => "已完成"
); );
?> ?>
<style> <style>
select, textarea { select,
margin: 8px 0; textarea {
} margin: 8px 0;
div.input-style, textarea { }
width: 100%;
padding: 12px 20px; div.input-style,
margin: 8px 0; textarea {
display: block; width: 100%;
border: 1px solid #ccc; padding: 12px 20px;
border-radius: 4px; margin: 8px 0;
box-sizing: border-box; display: block;
background: var(--bs-white, #fff); border: 1px solid #ccc;
white-space: pre; border-radius: 4px;
} box-sizing: border-box;
div.input-style:empty:after { background: var(--bs-white, #fff);
content: " "; white-space: pre;
} }
div.input-style:empty:after {
content: " ";
}
</style> </style>
<?php if ($data["progress"] == "9") { // determination ?> <?php if ($data["progress"] == "9") { // determination
<div class="container"> ?>
<form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" enctype="multipart/form-data"> <div class="container">
<input type="hidden" name="token" value="<?=$token;?>"> <form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" enctype="multipart/form-data">
<input type="hidden" name="closer" value="<?=$user_id;?>"> <input type="hidden" name="token" value="<?= $token; ?>">
<input type="hidden" name="progress" value="<?=$data["progress"];?>"> <input type="hidden" name="closer" value="<?= $user_id; ?>">
<input type="hidden" name="no" value="<?=$data["id"];?>"> <input type="hidden" name="progress" value="<?= $data["progress"]; ?>">
<div class="form-group"> <input type="hidden" name="no" value="<?= $data["id"]; ?>">
<div class="col-md-3"> <div class="form-group">
<h3 style="font-weight: 700;">審查結果填寫</h3> <div class="col-md-3">
</div> <h3 style="font-weight: 700;">審查結果填寫</h3>
<div class="col-md-3"> </div>
<label for="reviewresult">審查判定結果</label> <div class="col-md-3">
<select id="reviewresult" name="reviewresult"> <label for="reviewresult">審查判定結果</label>
<option value="N">判定不良品</option> <select id="reviewresult" name="reviewresult">
<option value="G">判定良品</option> <option value="N">判定不良品</option>
</select> <option value="G">判定良品</option>
</div> </select>
<div class="col-md-6"> </div>
<label for="responsiblesupplier">責任供應商</label> <div class="col-md-6">
<input type="text" name="responsiblesupplier" id="responsiblesupplier" maxlength="20" placeholder="ex: 永佳捷科技"> <label for="responsiblesupplier">責任供應商</label>
</div> <input type="text" name="responsiblesupplier" id="responsiblesupplier" maxlength="20" placeholder="ex: 永佳捷科技">
</div> </div>
<div class="form-group"> </div>
<div class="col-md-12"> <div class="form-group">
<button type="submit" class="btn btn-primary btn-lg">點擊後結束不良反饋單</button> <div class="col-md-12">
</div> <button type="submit" class="btn btn-primary btn-lg">點擊後結束不良反饋單</button>
</div> </div>
</form> </div>
</div> </form>
<div class="container"> </div>
<form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" enctype="multipart/form-data"> <div class="container">
<div class="form-group"> <form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" enctype="multipart/form-data">
<div class="col-md-3"> <div class="form-group">
<h3 style="font-weight: 700;">責任單位回覆</h3> <div class="col-md-3">
</div> <h3 style="font-weight: 700;">責任單位回覆</h3>
<div class="col-md-3"> </div>
<label for="responder">責任單位回覆人</label> <div class="col-md-3">
<div class="input-style" id="responder"><?=implode(" ", array($data["responder"], $data["responder_name"]))?></div> <label for="responder">責任單位回覆人</label>
</div> <div class="input-style" id="responder"><?= implode(" ", array($data["responder"], $data["responder_name"])) ?></div>
<div class="col-md-3"> </div>
<label for="progress">處理狀態</label> <div class="col-md-3">
<div class="input-style" id="progress"><?=$progress[$data["progress"]]?></div> <label for="progress">處理狀態</label>
</div> <div class="input-style" id="progress"><?= $progress[$data["progress"]] ?></div>
</div> </div>
<div class="form-group"> </div>
<div class="col-md-12"> <div class="form-group">
<label for="replyhistory">回覆詳細</label> <div class="col-md-12">
<textarea class="input-style" id="replyhistory" rows="6" style="resize: none;" disabled><?=$data["replyhistory"]?></textarea> <label for="replyhistory">回覆詳細</label>
</div> <textarea class="input-style" id="replyhistory" rows="6" style="resize: none;" disabled><?= $data["replyhistory"] ?></textarea>
</div> </div>
</form> </div>
</div> </form>
<div class="container"> </div>
<form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" enctype="multipart/form-data"> <div class="container">
<div class="form-group"> <form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" enctype="multipart/form-data">
<div class="col-md-3"> <div class="form-group">
<h3 style="font-weight: 700;">品證部門填寫</h3> <div class="col-md-3">
</div> <h3 style="font-weight: 700;">品證部門填寫</h3>
<div class="col-md-3"> </div>
<label for="verify">結案人員</label> <div class="col-md-3">
<div class="input-style" id="verify"><?=implode(" ", array($data["verify"], $data["verify_name"]))?></div> <label for="verify">結案人員</label>
</div> <div class="input-style" id="verify"><?= implode(" ", array($data["verify"], $data["verify_name"])) ?></div>
<div class="col-md-3"> </div>
<label for="responsibledepartment">判定責任單位</label> <div class="col-md-3">
<div class="input-style" id="responsibledepartment"><?=$data["responsibledepartment_name"]?></div> <label for="responsibledepartment">判定責任單位</label>
</div> <div class="input-style" id="responsibledepartment"><?= $data["responsibledepartment_name"] ?></div>
<div class="col-md-3"> </div>
<label for="responsibledepartmentleader">判定責任單位主管</label> <div class="col-md-3">
<div class="input-style" id="responsibledepartmentleader"><?=implode(" ", array($data["responsibledepartmentleader"], $data["responsibledepartmentleader_name"]))?></div> <label for="responsibledepartmentleader">判定責任單位主管</label>
</div> <div class="input-style" id="responsibledepartmentleader"><?= implode(" ", array($data["responsibledepartmentleader"], $data["responsibledepartmentleader_name"])) ?></div>
</div> </div>
<div class="form-group"> </div>
<div class="col-md-6"> <div class="form-group">
<label for="investigationreason">現場調查原因</label> <div class="col-md-6">
<textarea class="input-style" id="investigationreason" rows="6" maxlength="128" style="resize: none;" disabled><?=$data["investigationreason"]?></textarea> <label for="investigationreason">現場調查原因</label>
</div> <textarea class="input-style" id="investigationreason" rows="6" maxlength="128" style="resize: none;" disabled><?= $data["investigationreason"] ?></textarea>
<div class="col-md-6"> </div>
<label for="countermeasure">對策方法及再發防止</label> <div class="col-md-6">
<textarea class="input-style" id="countermeasure" rows="6" maxlength="128" style="resize: none;" disabled><?=$data["countermeasure"]?></textarea> <label for="countermeasure">對策方法及再發防止</label>
</div> <textarea class="input-style" id="countermeasure" rows="6" maxlength="128" style="resize: none;" disabled><?= $data["countermeasure"] ?></textarea>
</div> </div>
</form> </div>
</div> </form>
</div>
<?php } else { ?> <?php } else { ?>
<div class="container"> <div class="container">
<form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" enctype="multipart/form-data"> <form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" enctype="multipart/form-data">
<input type="hidden" name="token" value="<?=$token;?>"> <input type="hidden" name="token" value="<?= $token; ?>">
<input type="hidden" name="verify" value="<?=$user_id;?>"> <input type="hidden" name="verify" value="<?= $user_id; ?>">
<input type="hidden" name="progress" value="<?=$data["progress"];?>"> <input type="hidden" name="progress" value="<?= $data["progress"]; ?>">
<input type="hidden" name="no" value="<?=$data["id"];?>"> <input type="hidden" name="no" value="<?= $data["id"]; ?>">
<div class="form-group"> <div class="form-group">
<div class="col-md-3"> <div class="col-md-3">
<h3 style="font-weight: 700;">品證部門判定</h3> <h3 style="font-weight: 700;">品證部門判定</h3>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<label for="responsibledepartment">判定責任單位</label> <label for="responsibledepartment">判定責任單位</label>
<select name="responsibledepartment" id="responsibledepartment" required> <select name="responsibledepartment" id="responsibledepartment" required>
<option value="250">廠務部</option> <option value="250">廠務部</option>
<option value="321">業務部</option> <option value="321">業務部</option>
<option value="50">工務總處</option> <option value="50">工務總處</option>
<option value="521">安裝開發支援部</option> <option value="521">安裝開發支援部</option>
<option value="531">北區維修保養部</option> <option value="531">北區維修保養部</option>
<option value="532">桃竹維修保養部</option> <option value="532">桃竹維修保養部</option>
<option value="533">中區維修保養部</option> <option value="533">中區維修保養部</option>
<option value="534">南區維修保養部</option> <option value="534">南區維修保養部</option>
<option value="541">宜花東工事部</option> <option value="541">宜花東工事部</option>
<option value="542">北區工事部</option> <option value="542">北區工事部</option>
<option value="543">桃竹工事部</option> <option value="543">桃竹工事部</option>
<option value="544">中區工事部</option> <option value="544">中區工事部</option>
<option value="545">南區工事部</option> <option value="545">南區工事部</option>
</select> <option value="platform">普來特富</option>
</div> </select>
</div> </div>
<div class="form-group">
<div class="col-md-6">
<label for="investigationreason">現場調查原因</label>
<textarea name="investigationreason" id="investigationreason" rows="6" maxlength="128" required></textarea>
</div>
<div class="col-md-6">
<label for="countermeasure">對策方法及再發防止</label>
<textarea name="countermeasure" id="countermeasure" rows="6" maxlength="255" required></textarea>
</div>
</div>
<div class="form-group">
<div class="col-md-12">
<button type="submit" class="btn btn-primary btn-lg">點擊後更新不良反饋單</button>
</div> </div>
</div> <div class="form-group">
</form> <div class="col-md-6">
</div> <label for="investigationreason">現場調查原因</label>
<textarea name="investigationreason" id="investigationreason" rows="6" maxlength="128" required></textarea>
</div>
<div class="col-md-6">
<label for="countermeasure">對策方法及再發防止</label>
<textarea name="countermeasure" id="countermeasure" rows="6" maxlength="255" required></textarea>
</div>
</div>
<div class="form-group">
<div class="col-md-12">
<button type="submit" class="btn btn-primary btn-lg">點擊後更新不良反饋單</button>
</div>
</div>
</form>
</div>
<?php } ?> <?php } ?>
<div class="container"> <div class="container">
<form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" enctype="multipart/form-data"> <form role="form" class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" enctype="multipart/form-data">
<div class="form-group"> <div class="form-group">
<div class="col-md-3"> <div class="col-md-3">
<h3 style="font-weight: 700;">不良單基本資料</h3> <h3 style="font-weight: 700;">不良單基本資料</h3>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<label for="id">項次</label> <label for="id">項次</label>
<div class="input-style" id="id"><?=$data["id"]?></div> <div class="input-style" id="id"><?= $data["id"] ?></div>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<label for="create_at">反饋日期</label> <label for="create_at">反饋日期</label>
<div class="input-style" id="create_at"><?=$data["create_at"]?></div> <div class="input-style" id="create_at"><?= $data["create_at"] ?></div>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<label for="creater">不良單填寫人</label> <label for="creater">不良單填寫人</label>
<div class="input-style" id="creater"><?=implode(" ", array($data["creater"], $data["creater_name"]))?></div> <div class="input-style" id="creater"><?= implode(" ", array($data["creater"], $data["creater_name"])) ?></div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="col-md-3"> <div class="col-md-3">
<label for="facilityno">電梯ID</label> <label for="facilityno">電梯ID</label>
<div class="input-style" id="facilityno"><?=$data["facilityno"]?></div> <div class="input-style" id="facilityno"><?= $data["facilityno"] ?></div>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<label for="sitename">現場名稱</label> <label for="sitename">現場名稱</label>
<div class="input-style" id="sitename"><?=$data["sitename"]?></div> <div class="input-style" id="sitename"><?= $data["sitename"] ?></div>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label for="siteaddress">現場地址</label> <label for="siteaddress">現場地址</label>
<div class="input-style" id="siteaddress"><?=$data["siteaddress"]?></div> <div class="input-style" id="siteaddress"><?= $data["siteaddress"] ?></div>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label for="ngdescribe">簡述不良內容</label> <label for="ngdescribe">簡述不良內容</label>
<textarea class="input-style" id="ngdescribe" rows="6" maxlength="128" style="resize: none;" disabled><?=$data["ngdescribe"]?></textarea> <textarea class="input-style" id="ngdescribe" rows="6" maxlength="128" style="resize: none;" disabled><?= $data["ngdescribe"] ?></textarea>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label for="ngimage">照片上傳</label> <label for="ngimage">照片上傳</label>
<div class="input-style" id="ngimage"><?php echo $data["ngimage"] ? "<img src='..".$data["ngimage"]."' style='margin: 0 auto; width: 100%; height: auto; border-radius: 0; float: none;'/>" : "";?></div> <div class="input-style" id="ngimage"><?php echo $data["ngimage"] ? "<img src='.." . $data["ngimage"] . "' style='margin: 0 auto; width: 100%; height: auto; border-radius: 0; float: none;'/>" : ""; ?></div>
</div> </div>
</div> </div>
</form> </form>
</div> </div>

Loading…
Cancel
Save