Browse Source

獎金

gary
Cheng 1 year ago
parent
commit
8d4230eed8
  1. 60
      wms/bonus/api/postStatus.php
  2. 123
      wms/bonus/bonus.php
  3. 21
      wms/bonus/bonus_detail.php
  4. 47
      wms/contract-repair/js/alpine.js
  5. 423
      wms/contract-repair/styles/style.css
  6. 2
      wms/contract-repair/styles/style.scss
  7. 10
      wms/contract/contract-new-apply.php

60
wms/bonus/api/postStatus.php

@ -0,0 +1,60 @@
<?php
require_once("../../contract/conn.php");
if (!empty($_POST['id']) && !empty($_POST['postType']) && $_POST['postType'] == 'a') {
$id = empty($_POST['id']) ? '' : $_POST['id'];
$user_id = empty($_POST['user_id']) ? '' : $_POST['user_id'];
$pay_day = empty($_POST['pay_day']) ? '' : $_POST['pay_day'];
$review_at = date("Y-m-d");
$sql = "UPDATE bonus SET status = 2 ,review_hr = '$user_id' ,review_at = '$review_at',pay_day ='$pay_day' WHERE id = $id";
$stmt = $conn->prepare($sql);
$stmt->execute();
echo 'Success';
}
// 獎金確認發放,並更新獎金 OR 實際發放時間
if (!empty($_POST['postType']) && $_POST['postType'] == 'b') {
$id = empty($_POST['id']) ? '' : $_POST['id'];
$pay_day = empty($_POST['pay_day']) ? '' : $_POST['pay_day'];
$bonus_actual = empty($_POST['bonus_issue']) ? '' : $_POST['bonus_issue'];
$note = empty($_POST['note']) ? '' : $_POST['note'];
$user_id = empty($_POST['user_id']) ? '' : $_POST['user_id'];
$review_at = date("Y-m-d");
try {
$sql = "UPDATE bonus SET status = 2,review_hr='$user_id',review_at='$review_at',pay_day='$pay_day',note='$note' WHERE id = $id";
$stmt = $conn->prepare($sql);
$stmt->execute();
header("HTTP/1.1 200 success!");
} catch (PDOException $e) {
header("HTTP/1.1 500 failed!");
echo $e->getMessage();
die('Error!:' . $e->getMessage());
}
}
// 獎金暫不發放
if (!empty($_POST['postType']) && $_POST['postType'] == 'c') {
// echo 'cccccc';
$id = empty($_POST['id']) ? '' : $_POST['id'];
$pay_day = empty($_POST['pay_day']) ? '' : $_POST['pay_day'];
$bonus_actual = empty($_POST['bonus_issue']) ? '' : $_POST['bonus_issue'];
$user_id = empty($_POST['user_id']) ? '' : $_POST['user_id'];
$note = empty($_POST['note']) ? '' : $_POST['note'];
try {
$sql = "UPDATE bonus SET status = 4,review_hr='$user_id',review_at='$review_at',pay_day='$pay_day',note='$note' WHERE id = $id";
$stmt = $conn->prepare($sql);
$stmt->execute();
header("HTTP/1.1 200 success!");
} catch (PDOException $e) {
header("HTTP/1.1 500 failed!");
echo $e->getMessage();
die('Error!:' . $e->getMessage());
}
}
if (!empty($_POST['postType']) && $_POST['postType'] == 'd') {
$id = empty($_POST['id']) ? '' : $_POST['id'];
print_r($id);
// echo 'ddddd';
}

123
wms/bonus/bonus.php

@ -15,10 +15,22 @@ $bonus_type = [
'2' => '區經理獎金', '2' => '區經理獎金',
'3' => '專任契約經理獎金' '3' => '專任契約經理獎金'
]; ];
$bonus_status = [
'1' => '未確認',
'2' => '應發已確認',
'3' => '應發未確認',
'4' => '暫不發放',
'5' => '人事審核確認'
];
$clause = ''; $clause = '';
if ($user_id != 'M0225') {
$clause .= "AND receiver == '$user_id'";
}
if (!empty($_GET['check'])) { if (!empty($_GET['check'])) {
if ($_GET['check'] == 1) { // 人事發放作業,應為一個月內
$clause .= "AND pay_day > DATE_SUB(NOW(), INTERVAL 1 MONTH)"; if ($_GET['check'] == 4) {
$clause .= "AND pay_day_due > DATE_SUB(NOW(), INTERVAL 1 MONTH)";
} else if ($_GET['check'] == 2) { } else if ($_GET['check'] == 2) {
$clause .= "AND status = 1"; $clause .= "AND status = 1";
} else if ($_GET['check'] == 3) { } else if ($_GET['check'] == 3) {
@ -35,6 +47,14 @@ $datas = $stmt->fetchAll(PDO::FETCH_ASSOC);
$now = new DateTime(); $now = new DateTime();
$oneMonthAgo = $now->modify('+1 month'); $oneMonthAgo = $now->modify('+1 month');
$id = [];
foreach ($datas as $data) {
$id[] = $data['id'];
}
$id_str = implode(',', $id);
echo "<pre>";
print_r($id_str);
echo '</pre>';
// 查看 T8 是否有收款明細 // 查看 T8 是否有收款明細
// require("./api/get.php"); // require("./api/get.php");
function isPay($contract_no, $connT8) function isPay($contract_no, $connT8)
@ -98,19 +118,22 @@ function isPay($contract_no, $connT8)
<script src="../contract-repair/js/axios/axios.min.js"></script> <script src="../contract-repair/js/axios/axios.min.js"></script>
<!-- <script src="../contract-repair/js/jquery/jquery-3.1.1.min.js"></script> --> <!-- <script src="../contract-repair/js/jquery/jquery-3.1.1.min.js"></script> -->
<script src="../contract-repair/semantic/dist/semantic.min.js"></script> <script src="../contract-repair/semantic/dist/semantic.min.js"></script>
<div class="bonus_index"> <div class="bonus_index" x-data="bonusIndexTest">
<!-- <input type="button" hidden x-ref="initbtn" @click="isPay()" /> --> <div class="form" method="post" id="form" enctype="multipart/form-data">
<div style="overflow-x:auto;margin-top:12px"> <div style="overflow-x:auto;margin-top:12px">
<a href="bonus_index1.php?function_name=bonus&token=<?php echo $token; ?>" class="btn btn-info btn-sm"> <a href="bonus_index1.php?function_name=bonus&token=<?php echo $token; ?>" class="btn btn-info btn-sm">
<span class="glyphicon glyphicon-plus"></span> <span class="glyphicon glyphicon-plus"></span>
</a> </a>
<a href="/wms/bonus/bonus.php?function_name=bonus&token=<?php echo $token; ?>" class=" btn <?php echo (!isset($_GET['check'])) ? "btn btn-primary" : "btn-secondary"; ?> btn-sm categoryBtn"> 所有獎金</a> <a href="/wms/bonus/bonus.php?function_name=bonus&token=<?php echo $token; ?>" class=" btn <?php echo (!isset($_GET['check'])) ? "btn btn-primary" : "btn-secondary"; ?> btn-sm categoryBtn"> 所有獎金</a>
<a href="/wms/bonus/bonus.php?check=1&function_name=bonus&token=<?php echo $token; ?>" class=" btn <?php echo (isset($_GET['check']) && $_GET['check'] == 1) ? "btn-primary" : "btn-secondary"; ?> btn-sm categoryBtn"> 應發獎金</a> <!-- <a href="/wms/bonus/bonus.php?check=1&function_name=bonus&token=<?php echo $token; ?>" class=" btn <?php echo (isset($_GET['check']) && $_GET['check'] == 1) ? "btn-primary" : "btn-secondary"; ?> btn-sm categoryBtn"> 應發獎金</a> -->
<a href="/wms/bonus/bonus.php?check=2&function_name=bonus&token=<?php echo $token; ?>" class=" btn <?php echo (isset($_GET['check']) && $_GET['check'] == 2) ? "btn-primary" : "btn-secondary"; ?> btn-sm categoryBtn"> 未發獎金</a> <a href="/wms/bonus/bonus.php?check=2&function_name=bonus&token=<?php echo $token; ?>" class=" btn <?php echo (isset($_GET['check']) && $_GET['check'] == 2) ? "btn-primary" : "btn-secondary"; ?> btn-sm categoryBtn"> 未發獎金</a>
<a href="/wms/bonus/bonus.php?check=3&function_name=bonus&token=<?php echo $token; ?>" class=" btn <?php echo (isset($_GET['check']) && $_GET['check'] == 3) ? "btn-primary" : "btn-secondary"; ?> btn-sm categoryBtn"> 已發獎金</a> <a href="/wms/bonus/bonus.php?check=3&function_name=bonus&token=<?php echo $token; ?>" class=" btn <?php echo (isset($_GET['check']) && $_GET['check'] == 3) ? "btn-primary" : "btn-secondary"; ?> btn-sm categoryBtn"> 已發獎金</a>
<a href="/wms/bonus/bonus.php?check=4&function_name=bonus&token=<?php echo $token; ?>" class=" btn <?php echo (isset($_GET['check']) && $_GET['check'] == 4) ? "btn-primary" : "btn-secondary"; ?> btn-sm categoryBtn"> 人事發放作業</a>
<table id="table_index" class="table table-striped table-bordered" style="width:100%"> <table id="table_index" class="table table-striped table-bordered" style="width:100%">
<button class="btn btn-primary float-end" style="float: right;" onclick="All('<?= $id_str ?>')">確認並發放</button>
<thead> <thead>
<tr> <tr>
<th>項次</th> <th>項次</th>
@ -125,9 +148,14 @@ function isPay($contract_no, $connT8)
<th>應發人員</th> <th>應發人員</th>
<th>預計發放時間</th> <th>預計發放時間</th>
<th>獎金水庫</th> <th>獎金水庫</th>
<!-- <th>是否發放</th> -->
<th>狀態</th> <th>狀態</th>
<th>檢視/發放</th> <?php
if (!empty($_GET['check']) && $_GET['check'] == '4') {
?>
<th>實際發放時間</th>
<th>發放 / 詳情</th>
<?php } ?>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -140,7 +168,7 @@ function isPay($contract_no, $connT8)
$total = empty($json->total) ? 0 : $json->total; $total = empty($json->total) ? 0 : $json->total;
$fee_per_st = empty($json->fee_per_st) ? 0 : $json->fee_per_st; $fee_per_st = empty($json->fee_per_st) ? 0 : $json->fee_per_st;
$commission_fee = empty($json->commission_fee) ? 0 : $json->commission_fee; $commission_fee = empty($json->commission_fee) ? 0 : $json->commission_fee;
$isPay = isPay($data['contract_no'], $connT8); // $isPay = isPay($data['contract_no'], $connT8);
?> ?>
<tr> <tr>
@ -154,28 +182,39 @@ function isPay($contract_no, $connT8)
<td><?= $fee_per_st ?></td> <td><?= $fee_per_st ?></td>
<td><?= $commission_fee ?></td> <td><?= $commission_fee ?></td>
<td><?= $data['receiver'] ?></td> <td><?= $data['receiver'] ?></td>
<td><?= $data['pay_day'] ?></td> <td><?= $data['pay_day_due'] ?></td>
<td><?= $data['amount'] ?></td> <td><?= $data['amount'] ?></td>
<!-- <td><?= ($data['status'] == 1) ? '未發放' : '已發放' ?></td> -->
<td> <td>
<!-- <input type="text" x-model="isPays[<?php echo $key; ?>]" /> --> <?= $bonus_status[$data['status']] ?>
<span><?= ($isPay == 1) ? '已收款' : '未收款' ?></span> <!-- <span><?= ($isPay == 1) ? '已收款' : '未收款' ?></span> -->
</td> </td>
<?php if (!empty($_GET['check']) && $_GET['check'] == '4') {
if ($data['status'] == '3' || $data['status'] == '1') { ?>
<td> -- </td>
<td> <td>
<?php <?php
// 判斷時間是否為一個月內 // 判斷時間是否為一個月內
$payday = new DateTime($data['pay_day']); $payday = new DateTime($data['pay_day']);
if ($isPay == 1) { // if ($isPay == 1) {
?> ?>
<a href="bonus_detail.php?id=<?= $data['id'] ?>&token=<?php echo $token; ?>" class="applybtn" style="">發放獎金</a> <button onclick="issue(<?= $data['id'] ?>,'<?= $user_id ?>','<?= $data['pay_day_due'] ?>')" type="button" class="btn applybtn" name='issuePay'>發放獎金</button>
<?php <?php
} else if ($payday < $oneMonthAgo) {
// } else if ($payday < $oneMonthAgo) {
?> ?>
<a href="bonus_detail.php?id=<?= $data['id'] ?>&token=<?php echo $token; ?>" class="applybtncheck">查看詳情</a> <a href="bonus_detail.php?id=<?= $data['id'] ?>&token=<?php echo $token; ?>" class="applybtncheck">查看詳情</a>
<?php <?php
} // }
?> ?>
</td> </td>
<!-- <td><input type="date" value="<?= $data['pay_day'] ?>"></td> -->
<?php } else { ?>
<td><?= $data['pay_day'] ?></td>
<td></td>
<?php }
} ?>
</tr> </tr>
<?php <?php
@ -184,9 +223,10 @@ function isPay($contract_no, $connT8)
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
<!-- </div> -->
<style> <style>
table { table {
table-layout: fixed; table-layout: fixed;
width: 100%; width: 100%;
@ -196,7 +236,7 @@ function isPay($contract_no, $connT8)
word-wrap: break-word; word-wrap: break-word;
} }
.width_style_1 { .width_st yle_1 {
width: 125px; width: 125px;
} }
@ -237,13 +277,13 @@ function isPay($contract_no, $connT8)
background-color: #1484c4; background-color: #1484c4;
/* display: block; */ /* display: block; */
border-radius: 5px; border-radius: 5px;
padding: 5px 2px; /* padding: 5px 2px; */
font-size: 13px; font-size: 13px;
line-height: 1; line-height: 1;
display: grid; display: grid;
place-items: center; place-items: center;
/* 水平和垂直居中 */ /* 水平和垂直居中 */
height: 2%vh; /* height: 2%vh; */
/* 100%视窗高度,可根据需要调整 */ /* 100%视窗高度,可根据需要调整 */
} }
@ -271,11 +311,44 @@ function isPay($contract_no, $connT8)
background-color: #1494f9; background-color: #1494f9;
color: #fff; color: #fff;
} }
</style> </style>
<script> <script>
const datas = <?php echo json_encode($datas); ?>; const datas = <?php echo json_encode($datas); ?>;
function issue(id, user_id, pay_day) {
// console.log(id);
const form = new FormData();
form.append('id', id)
form.append('user_id', user_id);
form.append('pay_day', pay_day)
axios.post('./api/postStatus.php', form).then((res) => {
if (res.data == 'Success') {
alert('更新成功');
location.reload();
}
}).catch((err) => {
})
}
function All(data) {
let arr = data.split(",");
console.log(arr);
const form = new FormData();
form.append('id', arr);
form.append('postType', 'd');
axios.post('./api/postStatus.php', form).then((res) => {
console.log(res);
}).catch((err) => {
});
}
// $(function() {
// $("button[name=issuePay]").click(function() {
// console.log(123);
// })
// })
// function init() { // function init() {
// this.isPay(); // this.isPay();
@ -298,4 +371,4 @@ function isPay($contract_no, $connT8)
// } // }
// } // }
// } // }
</script> </script>

21
wms/bonus/bonus_detail.php

@ -111,7 +111,7 @@ $maintain_type = [
</td> </td>
<td style="vertical-align:middle">應發獎金</td> <td style="vertical-align:middle">應發獎金</td>
<td> <td>
<input type="text" x-model="data.maintain_price_total" disabled> <input type="text" x-model="data.maintain_price_total">
</td> </td>
</tr> </tr>
<tr> <tr>
@ -133,6 +133,17 @@ $maintain_type = [
</td> </td>
</tr> </tr>
<tr>
<td style="vertical-align:middle">實發獎金</td>
<td>
<input type="text" x-model="data.bonus_actual">
</td>
<td style="vertical-align:middle">實發時間</td>
<td> <input class="form-control disabled_select" type="date" x-model="data.payDay">
</td>
<td style="vertical-align:middle">備註</td>
<td><input type="text" x-model='data.note'></td>
</tr>
</tbody> </tbody>
</template> </template>
</table> </table>
@ -145,6 +156,14 @@ $maintain_type = [
<div class="loader"></div> <div class="loader"></div>
</template> </template>
</button> </button>
<button x-show=" step==1" @click="stop()" :disabled="isLoading" type="button" class="btn btn-primary btn-lg pull-right savebtn">
<template x-if="!isLoading">
<span>暫不發放</span>
</template>
<template x-if="isLoading">
<div class="loader"></div>
</template>
</button>
<!-- <button x-show="step<=2" @click="nextStepFn()" type="button" class="btn btn-primary btn-lg pull-right savebtn" :disabled="isLoading"> <!-- <button x-show="step<=2" @click="nextStepFn()" type="button" class="btn btn-primary btn-lg pull-right savebtn" :disabled="isLoading">
<template x-if="!isLoading"> <template x-if="!isLoading">
<span>下一步</span> <span>下一步</span>

47
wms/contract-repair/js/alpine.js

@ -900,7 +900,10 @@ const bonunsIndex = () => {
total: total, total: total,
fee_per_st: fee_per_st, fee_per_st: fee_per_st,
commission_fee: commission_fee, commission_fee: commission_fee,
discount: discount discount: discount,
bonus_actual: '',
note: '',
id: id
}, },
step: 1, step: 1,
@ -929,6 +932,9 @@ const bonunsIndex = () => {
this.step = 3; s this.step = 3; s
} }
}, },
issue() {
console.log(1233);
},
getContractData() { getContractData() {
axios.get('./api/get.php?contract_no=' + this.data.contract_no).then(res => { axios.get('./api/get.php?contract_no=' + this.data.contract_no).then(res => {
if (!res.data) { if (!res.data) {
@ -965,7 +971,38 @@ const bonunsIndex = () => {
}, },
save() { save() {
if (this.step == 1) { if (this.step == 1) {
window.history.back(); // window.history.back();
const form = new FormData();
form.append('id', this.data.id);
form.append('bonus_actual', this.data.bonus_actual);
form.append('pay_day', this.data.payDay);
form.append('note', this.data.note);
form.append('user_id', this.data.user_id);
form.append('postType', 'b');
axios.post('./api/postStatus.php', form).then((res) => {
alert('更新成功');
window.history.go(-1);
}).catch((err) => {
alert('更新失敗');
console.log(err);
})
}
},
stop() {
if (this.step == 1) {
const form = new FormData();
form.append('id', this.data.id);
form.append('bonus_actual', this.data.bonus_actual);
form.append('pay_day', this.data.payDay);
form.append('note', this.data.note);
form.append('postType', 'c');
axios.post('./api/postStatus.php', form).then((res) => {
alert('更新成功');
window.history.go(-1);
}).catch((err) => {
alert('更新失敗');
})
} }
}, },
calBons() { calBons() {
@ -1001,7 +1038,7 @@ const bonunsIndex = () => {
} }
} }
const bonunsIndexTest = () => { const bonusIndexTest = () => {
return { return {
data: { data: {
bonus_verson: '2.1', bonus_verson: '2.1',
@ -1028,8 +1065,8 @@ const bonunsIndexTest = () => {
step: 1, step: 1,
isLoading: false, isLoading: false,
fail_arr: [], fail_arr: [],
test() { issue() {
console.log(this.data.paykind); console.log('123');
}, },
nextStepFn() { nextStepFn() {
if (this.step == 1) { if (this.step == 1) {

423
wms/contract-repair/styles/style.css

@ -1,20 +1,24 @@
@charset "UTF-8"; @charset "UTF-8";
main { main {
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
margin-top: -20px; margin-top: -20px;
} }
main [x-cloak] { main [x-cloak] {
display: none !important; display: none !important;
} }
main > .sidebar {
main>.sidebar {
width: 300px; width: 300px;
min-height: 100vh; min-height: 100vh;
border-right: 1px #ddd solid; border-right: 1px #ddd solid;
box-shadow: 0px 0px 5px #ddd; box-shadow: 0px 0px 5px #ddd;
padding: 50px 20px; padding: 50px 20px;
} }
main > .sidebar button {
main>.sidebar button {
display: block; display: block;
outline: none; outline: none;
border: none; border: none;
@ -24,13 +28,16 @@ main > .sidebar button {
border-bottom: 1px #ccc solid; border-bottom: 1px #ccc solid;
opacity: 0.65; opacity: 0.65;
} }
main > .sidebar button.active {
main>.sidebar button.active {
opacity: 1; opacity: 1;
} }
main > .sidebar button:hover {
main>.sidebar button:hover {
opacity: 1; opacity: 1;
} }
main > .sidebar a {
main>.sidebar a {
display: block; display: block;
width: 120px; width: 120px;
height: 35px; height: 35px;
@ -41,14 +48,17 @@ main > .sidebar a {
color: #fff; color: #fff;
margin-top: 50px; margin-top: 50px;
} }
main .inputDiv { main .inputDiv {
padding: 30px; padding: 30px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
main .inputDiv label { main .inputDiv label {
margin-bottom: 10px; margin-bottom: 10px;
} }
main .inputDiv label input, main .inputDiv label input,
main .inputDiv label select { main .inputDiv label select {
border: 1px #aaa solid; border: 1px #aaa solid;
@ -58,6 +68,7 @@ main .inputDiv label select {
height: 32px; height: 32px;
padding: 0 10px; padding: 0 10px;
} }
main .inputDiv label button { main .inputDiv label button {
background-color: #1E74FD; background-color: #1E74FD;
color: #fff; color: #fff;
@ -69,6 +80,7 @@ main .inputDiv label button {
font-weight: 6500; font-weight: 6500;
margin-top: 15px; margin-top: 15px;
} }
main .contract-install-component, main .contract-install-component,
main .contract-material-component { main .contract-material-component {
width: 100%; width: 100%;
@ -76,133 +88,154 @@ main .contract-material-component {
margin: 30px auto; margin: 30px auto;
background-color: #f7f7f7 !important; background-color: #f7f7f7 !important;
} }
main .contract-install-component p, main .contract-install-component p,
main .contract-material-component p { main .contract-material-component p {
margin: 0; margin: 0;
} }
main .contract-install-component > .btn-list,
main .contract-material-component > .btn-list { main .contract-install-component>.btn-list,
main .contract-material-component>.btn-list {
display: flex; display: flex;
align-items: center; align-items: center;
} }
main .contract-install-component > .btn-list > button,
main .contract-material-component > .btn-list > button { main .contract-install-component>.btn-list>button,
main .contract-material-component>.btn-list>button {
padding: 8px; padding: 8px;
margin: 0 4px; margin: 0 4px;
} }
main .contract-install-component > .contract,
main .contract-material-component > .contract { main .contract-install-component>.contract,
main .contract-material-component>.contract {
background: #fff; background: #fff;
width: 100%; width: 100%;
margin-top: 15px; margin-top: 15px;
padding: 20px; padding: 20px;
font-family: "標楷體"; font-family: "標楷體";
} }
main .contract-install-component > .contract > h2,
main .contract-material-component > .contract > h2 { main .contract-install-component>.contract>h2,
main .contract-material-component>.contract>h2 {
font-size: 18pt; font-size: 18pt;
text-align: center; text-align: center;
} }
main .contract-install-component > .contract br,
main .contract-material-component > .contract br { main .contract-install-component>.contract br,
main .contract-material-component>.contract br {
line-height: 2.5; line-height: 2.5;
} }
main .contract-install-component > .contract .d-flex,
main .contract-material-component > .contract .d-flex { main .contract-install-component>.contract .d-flex,
main .contract-material-component>.contract .d-flex {
display: flex; display: flex;
align-items: center; align-items: center;
} }
main .contract-install-component > .contract .mouseover,
main .contract-material-component > .contract .mouseover { main .contract-install-component>.contract .mouseover,
main .contract-material-component>.contract .mouseover {
background-color: #f1f1f1; background-color: #f1f1f1;
cursor: pointer; cursor: pointer;
} }
main .contract-install-component > .contract div,
main .contract-install-component > .contract section, main .contract-install-component>.contract div,
main .contract-material-component > .contract div, main .contract-install-component>.contract section,
main .contract-material-component > .contract section { main .contract-material-component>.contract div,
main .contract-material-component>.contract section {
font-size: 12pt; font-size: 12pt;
line-height: 2.5; line-height: 2.5;
} }
main .contract-install-component > .contract div.party,
main .contract-install-component > .contract section.party, main .contract-install-component>.contract div.party,
main .contract-material-component > .contract div.party, main .contract-install-component>.contract section.party,
main .contract-material-component > .contract section.party { main .contract-material-component>.contract div.party,
main .contract-material-component>.contract section.party {
width: 100%; width: 100%;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
} }
main .contract-install-component > .contract div.party .company-name,
main .contract-install-component > .contract section.party .company-name, main .contract-install-component>.contract div.party .company-name,
main .contract-material-component > .contract div.party .company-name, main .contract-install-component>.contract section.party .company-name,
main .contract-material-component > .contract section.party .company-name { main .contract-material-component>.contract div.party .company-name,
main .contract-material-component>.contract section.party .company-name {
text-indent: 80pt; text-indent: 80pt;
} }
main .contract-install-component > .contract div.party .notes,
main .contract-install-component > .contract section.party .notes, main .contract-install-component>.contract div.party .notes,
main .contract-material-component > .contract div.party .notes, main .contract-install-component>.contract section.party .notes,
main .contract-material-component > .contract section.party .notes { main .contract-material-component>.contract div.party .notes,
main .contract-material-component>.contract section.party .notes {
margin-right: 25%; margin-right: 25%;
white-space: nowrap; white-space: nowrap;
} }
main .contract-install-component > .contract div.list-content,
main .contract-install-component > .contract section.list-content, main .contract-install-component>.contract div.list-content,
main .contract-material-component > .contract div.list-content, main .contract-install-component>.contract section.list-content,
main .contract-material-component > .contract section.list-content { main .contract-material-component>.contract div.list-content,
main .contract-material-component>.contract section.list-content {
margin-left: 70px; margin-left: 70px;
} }
main .contract-install-component > .contract div.list-title,
main .contract-install-component > .contract section.list-title, main .contract-install-component>.contract div.list-title,
main .contract-material-component > .contract div.list-title, main .contract-install-component>.contract section.list-title,
main .contract-material-component > .contract section.list-title { main .contract-material-component>.contract div.list-title,
main .contract-material-component>.contract section.list-title {
display: flex; display: flex;
align-items: flex-start; align-items: flex-start;
} }
main .contract-install-component > .contract div.list-title > strong,
main .contract-install-component > .contract section.list-title > strong, main .contract-install-component>.contract div.list-title>strong,
main .contract-material-component > .contract div.list-title > strong, main .contract-install-component>.contract section.list-title>strong,
main .contract-material-component > .contract section.list-title > strong { main .contract-material-component>.contract div.list-title>strong,
main .contract-material-component>.contract section.list-title>strong {
min-width: 70px; min-width: 70px;
} }
main .contract-install-component > .contract p,
main .contract-install-component > .contract article, main .contract-install-component>.contract p,
main .contract-install-component > .contract div, main .contract-install-component>.contract article,
main .contract-material-component > .contract p, main .contract-install-component>.contract div,
main .contract-material-component > .contract article, main .contract-material-component>.contract p,
main .contract-material-component > .contract div { main .contract-material-component>.contract article,
main .contract-material-component>.contract div {
position: relative; position: relative;
display: block; display: block;
} }
main .contract-install-component > .contract .date,
main .contract-material-component > .contract .date { main .contract-install-component>.contract .date,
main .contract-material-component>.contract .date {
display: flex; display: flex;
align-items: center; align-items: center;
width: 100%; width: 100%;
margin-top: 300px; margin-top: 300px;
} }
main .contract-install-component > .contract .date p,
main .contract-material-component > .contract .date p { main .contract-install-component>.contract .date p,
main .contract-material-component>.contract .date p {
width: 50%; width: 50%;
letter-spacing: 20px; letter-spacing: 20px;
} }
main .contract-install-component > .contract .date > .ml,
main .contract-material-component > .contract .date > .ml { main .contract-install-component>.contract .date>.ml,
main .contract-material-component>.contract .date>.ml {
width: 50%; width: 50%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
flex-direction: row-reverse; flex-direction: row-reverse;
} }
main .contract-install-component > .contract .buttons,
main .contract-material-component > .contract .buttons { main .contract-install-component>.contract .buttons,
main .contract-material-component>.contract .buttons {
position: absolute; position: absolute;
top: 0; top: 0;
right: 0; right: 0;
display: flex; display: flex;
z-index: 9; z-index: 9;
} }
main .contract-install-component > .contract .buttons > button,
main .contract-material-component > .contract .buttons > button { main .contract-install-component>.contract .buttons>button,
main .contract-material-component>.contract .buttons>button {
width: 30px; width: 30px;
height: 30px; height: 30px;
border-radius: 5px; border-radius: 5px;
@ -215,134 +248,156 @@ main .contract-material-component > .contract .buttons > button {
color: #fff; color: #fff;
margin: 0 1px; margin: 0 1px;
} }
main .contract-install-component > .contract .buttons > button > i,
main .contract-material-component > .contract .buttons > button > i { main .contract-install-component>.contract .buttons>button>i,
main .contract-material-component>.contract .buttons>button>i {
font-size: 12px; font-size: 12px;
} }
main .contract-install-component > .contract .buttons > button.edit,
main .contract-material-component > .contract .buttons > button.edit { main .contract-install-component>.contract .buttons>button.edit,
main .contract-material-component>.contract .buttons>button.edit {
background-color: #5BC0DE; background-color: #5BC0DE;
} }
main .contract-install-component > .contract .buttons > button.add,
main .contract-material-component > .contract .buttons > button.add { main .contract-install-component>.contract .buttons>button.add,
main .contract-material-component>.contract .buttons>button.add {
background-color: #F0AD4E; background-color: #F0AD4E;
} }
main .contract-install-component > .contract .buttons > button.delete,
main .contract-material-component > .contract .buttons > button.delete { main .contract-install-component>.contract .buttons>button.delete,
main .contract-material-component>.contract .buttons>button.delete {
background-color: rgb(211, 0, 0); background-color: rgb(211, 0, 0);
} }
main .contract-install-component > .contract table,
main .contract-material-component > .contract table { main .contract-install-component>.contract table,
main .contract-material-component>.contract table {
border: none; border: none;
margin-top: 30px; margin-top: 30px;
font-family: "標楷體"; font-family: "標楷體";
width: 800px; width: 800px;
} }
main .contract-install-component > .contract table tr:nth-child(even),
main .contract-install-component > .contract table tr:nth-child(odd), main .contract-install-component>.contract table tr:nth-child(even),
main .contract-material-component > .contract table tr:nth-child(even), main .contract-install-component>.contract table tr:nth-child(odd),
main .contract-material-component > .contract table tr:nth-child(odd) { main .contract-material-component>.contract table tr:nth-child(even),
main .contract-material-component>.contract table tr:nth-child(odd) {
background-color: #fff; background-color: #fff;
} }
main .contract-install-component > .contract table tr,
main .contract-material-component > .contract table tr { main .contract-install-component>.contract table tr,
main .contract-material-component>.contract table tr {
font-size: 12pt; font-size: 12pt;
width: 100%; width: 100%;
position: relative; position: relative;
} }
main .contract-install-component > .contract table tr.mouseover,
main .contract-material-component > .contract table tr.mouseover { main .contract-install-component>.contract table tr.mouseover,
main .contract-material-component>.contract table tr.mouseover {
background-color: #f3f3f3; background-color: #f3f3f3;
} }
main .contract-install-component > .contract table tr h2,
main .contract-material-component > .contract table tr h2 { main .contract-install-component>.contract table tr h2,
main .contract-material-component>.contract table tr h2 {
font-size: 18pt; font-size: 18pt;
} }
main .contract-install-component > .contract table tr td,
main .contract-material-component > .contract table tr td { main .contract-install-component>.contract table tr td,
main .contract-material-component>.contract table tr td {
width: 100%; width: 100%;
height: 100%; height: 100%;
line-height: 2; line-height: 2;
display: flex; display: flex;
} }
main .contract-install-component > .contract table tr td.center,
main .contract-material-component > .contract table tr td.center { main .contract-install-component>.contract table tr td.center,
main .contract-material-component>.contract table tr td.center {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
main .contract-install-component > .contract table tr td.list,
main .contract-material-component > .contract table tr td.list { main .contract-install-component>.contract table tr td.list,
main .contract-material-component>.contract table tr td.list {
width: 100%; width: 100%;
height: 100%; height: 100%;
white-space: nowrap; white-space: nowrap;
display: flex; display: flex;
} }
main .contract-install-component > .contract table tr td.list span,
main .contract-material-component > .contract table tr td.list span { main .contract-install-component>.contract table tr td.list span,
main .contract-material-component>.contract table tr td.list span {
width: 100px; width: 100px;
min-height: 100%; min-height: 100%;
display: block; display: block;
} }
main .contract-install-component > .contract table tr td.list > p,
main .contract-material-component > .contract table tr td.list > p { main .contract-install-component>.contract table tr td.list>p,
main .contract-material-component>.contract table tr td.list>p {
display: block; display: block;
text-align: justify; text-align: justify;
} }
main .contract-install-component > .contract table tr td.list div,
main .contract-install-component > .contract table tr td.list article, main .contract-install-component>.contract table tr td.list div,
main .contract-material-component > .contract table tr td.list div, main .contract-install-component>.contract table tr td.list article,
main .contract-material-component > .contract table tr td.list article { main .contract-material-component>.contract table tr td.list div,
main .contract-material-component>.contract table tr td.list article {
max-width: calc(100% - 100px); max-width: calc(100% - 100px);
white-space: normal; white-space: normal;
} }
main .contract-install-component > .contract table tr td.list div input[type=text],
main .contract-install-component > .contract table tr td.list div input[type=number], main .contract-install-component>.contract table tr td.list div input[type=text],
main .contract-install-component > .contract table tr td.list div input, main .contract-install-component>.contract table tr td.list div input[type=number],
main .contract-install-component > .contract table tr td.list article input[type=text], main .contract-install-component>.contract table tr td.list div input,
main .contract-install-component > .contract table tr td.list article input[type=number], main .contract-install-component>.contract table tr td.list article input[type=text],
main .contract-install-component > .contract table tr td.list article input, main .contract-install-component>.contract table tr td.list article input[type=number],
main .contract-material-component > .contract table tr td.list div input[type=text], main .contract-install-component>.contract table tr td.list article input,
main .contract-material-component > .contract table tr td.list div input[type=number], main .contract-material-component>.contract table tr td.list div input[type=text],
main .contract-material-component > .contract table tr td.list div input, main .contract-material-component>.contract table tr td.list div input[type=number],
main .contract-material-component > .contract table tr td.list article input[type=text], main .contract-material-component>.contract table tr td.list div input,
main .contract-material-component > .contract table tr td.list article input[type=number], main .contract-material-component>.contract table tr td.list article input[type=text],
main .contract-material-component > .contract table tr td.list article input { main .contract-material-component>.contract table tr td.list article input[type=number],
main .contract-material-component>.contract table tr td.list article input {
border: none !important; border: none !important;
border-bottom: 1px #222 solid !important; border-bottom: 1px #222 solid !important;
width: 50px; width: 50px;
outline: none; outline: none;
text-align: center; text-align: center;
} }
main .contract-install-component > .contract table tr td.list div.text-justify,
main .contract-install-component > .contract table tr td.list article.text-justify, main .contract-install-component>.contract table tr td.list div.text-justify,
main .contract-material-component > .contract table tr td.list div.text-justify, main .contract-install-component>.contract table tr td.list article.text-justify,
main .contract-material-component > .contract table tr td.list article.text-justify { main .contract-material-component>.contract table tr td.list div.text-justify,
main .contract-material-component>.contract table tr td.list article.text-justify {
display: flex; display: flex;
width: 100%; width: 100%;
justify-content: space-between; justify-content: space-between;
} }
main .contract-install-component > .contract table tr.date td > div,
main .contract-material-component > .contract table tr.date td > div { main .contract-install-component>.contract table tr.date td>div,
main .contract-material-component>.contract table tr.date td>div {
width: 100%; width: 100%;
text-align: right; text-align: right;
} }
main .contract-install-component > .contract table tr.date td > div.text-justify,
main .contract-material-component > .contract table tr.date td > div.text-justify { main .contract-install-component>.contract table tr.date td>div.text-justify,
main .contract-material-component>.contract table tr.date td>div.text-justify {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
main .contract-install-component > .contract table td,
main .contract-install-component > .contract table th, main .contract-install-component>.contract table td,
main .contract-material-component > .contract table td, main .contract-install-component>.contract table th,
main .contract-material-component > .contract table th { main .contract-material-component>.contract table td,
main .contract-material-component>.contract table th {
padding: 8px; padding: 8px;
} }
@keyframes modelanim { @keyframes modelanim {
0% { 0% {
opacity: 0; opacity: 0;
} }
} }
main .contract-model { main .contract-model {
position: fixed; position: fixed;
top: 0; top: 0;
@ -355,7 +410,8 @@ main .contract-model {
z-index: 999; z-index: 999;
animation: modelanim 0.2s linear; animation: modelanim 0.2s linear;
} }
main .contract-model > .contract-back {
main .contract-model>.contract-back {
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
@ -363,7 +419,8 @@ main .contract-model > .contract-back {
height: 100%; height: 100%;
background-color: rgba(0, 0, 0, 0.5); background-color: rgba(0, 0, 0, 0.5);
} }
main .contract-model > .contract-content {
main .contract-model>.contract-content {
z-index: 999; z-index: 999;
max-width: 600px; max-width: 600px;
width: 100%; width: 100%;
@ -371,7 +428,8 @@ main .contract-model > .contract-content {
overflow: hidden; overflow: hidden;
background-color: white; background-color: white;
} }
main .contract-model > .contract-content > .model-header {
main .contract-model>.contract-content>.model-header {
width: 100%; width: 100%;
background-color: #1E74FD; background-color: #1E74FD;
height: 38px; height: 38px;
@ -380,21 +438,26 @@ main .contract-model > .contract-content > .model-header {
align-items: center; align-items: center;
padding: 0 15px; padding: 0 15px;
} }
main .contract-model > .contract-content > .model-header > i {
main .contract-model>.contract-content>.model-header>i {
float: right; float: right;
color: rgba(255, 255, 255, 0.7058823529); color: rgba(255, 255, 255, 0.7058823529);
cursor: pointer; cursor: pointer;
} }
main .contract-model > .contract-content > .model-header > i:hover {
main .contract-model>.contract-content>.model-header>i:hover {
color: #fff; color: #fff;
} }
main .contract-model > .contract-content > .model-header > span {
main .contract-model>.contract-content>.model-header>span {
color: #fff; color: #fff;
} }
main .contract-model > .contract-content > .content {
main .contract-model>.contract-content>.content {
padding: 30px; padding: 30px;
} }
main .contract-model > .contract-content > .content textarea {
main .contract-model>.contract-content>.content textarea {
width: 100%; width: 100%;
resize: vertical; resize: vertical;
height: 150px; height: 150px;
@ -402,6 +465,7 @@ main .contract-model > .contract-content > .content textarea {
outline: none; outline: none;
border-radius: 6px; border-radius: 6px;
} }
main .rebtn, main .rebtn,
main .prviewbtn { main .prviewbtn {
background-color: #5BC0DE; background-color: #5BC0DE;
@ -415,6 +479,7 @@ main .prviewbtn {
border-radius: 6px; border-radius: 6px;
margin-right: 5px; margin-right: 5px;
} }
main .prviewbtn { main .prviewbtn {
background-color: #2E6DA4; background-color: #2E6DA4;
} }
@ -430,6 +495,7 @@ input[type=radio].scorll {
cursor: pointer; cursor: pointer;
border-radius: 20px; border-radius: 20px;
} }
input[type=checkbox].scorll::before, input[type=checkbox].scorll::before,
input[type=radio].scorll::before { input[type=radio].scorll::before {
content: ""; content: "";
@ -443,14 +509,17 @@ input[type=radio].scorll::before {
transform: scale(0.98, 0.96); transform: scale(0.98, 0.96);
transition: 0.5s; transition: 0.5s;
} }
input[type=checkbox].scorll:checked, input[type=checkbox].scorll:checked,
input[type=radio].scorll:checked { input[type=radio].scorll:checked {
background: linear-gradient(to right, #5BC0DE, #2E6DA4); background: linear-gradient(to right, #5BC0DE, #2E6DA4);
} }
input[type=checkbox].scorll:checked::before, input[type=checkbox].scorll:checked::before,
input[type=radio].scorll:checked::before { input[type=radio].scorll:checked::before {
left: 25px; left: 25px;
} }
input[type=checkbox].scorll::after, input[type=checkbox].scorll::after,
input[type=radio].scorll::after { input[type=radio].scorll::after {
content: ""; content: "";
@ -463,66 +532,80 @@ input[type=radio].scorll::after {
width: 800px; width: 800px;
border: 1px #ccc solid; border: 1px #ccc solid;
} }
.prview table tr:nth-child(even), .prview table tr:nth-child(even),
.prview table tr:nth-child(odd) { .prview table tr:nth-child(odd) {
background-color: #fff; background-color: #fff;
} }
.prview table tr { .prview table tr {
font-size: 12pt; font-size: 12pt;
width: 100%; width: 100%;
position: relative; position: relative;
} }
.prview table tr.mouseover { .prview table tr.mouseover {
background-color: #f3f3f3; background-color: #f3f3f3;
} }
.prview table tr h2 { .prview table tr h2 {
font-size: 18pt; font-size: 18pt;
} }
.prview table tr td { .prview table tr td {
width: 100%; width: 100%;
height: 100%; height: 100%;
line-height: 2; line-height: 2;
display: flex; display: flex;
} }
.prview table tr td.center { .prview table tr td.center {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.prview table tr td.list { .prview table tr td.list {
width: 100%; width: 100%;
height: 100%; height: 100%;
white-space: nowrap; white-space: nowrap;
display: flex; display: flex;
} }
.prview table tr td.list span { .prview table tr td.list span {
width: 100px; width: 100px;
min-height: 100%; min-height: 100%;
display: block; display: block;
} }
.prview table tr td.list > p {
.prview table tr td.list>p {
display: block; display: block;
text-align: justify; text-align: justify;
} }
.prview table tr td.list div, .prview table tr td.list div,
.prview table tr td.list article { .prview table tr td.list article {
max-width: calc(100% - 100px); max-width: calc(100% - 100px);
white-space: normal; white-space: normal;
} }
.prview table tr td.list div.text-justify, .prview table tr td.list div.text-justify,
.prview table tr td.list article.text-justify { .prview table tr td.list article.text-justify {
display: flex; display: flex;
width: 100%; width: 100%;
justify-content: space-between; justify-content: space-between;
} }
.prview table tr.date td > div {
.prview table tr.date td>div {
width: 100%; width: 100%;
text-align: right; text-align: right;
} }
.prview table tr.date td > div.text-justify {
.prview table tr.date td>div.text-justify {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
.prview table td, .prview table td,
.prview table th { .prview table th {
padding: 8px; padding: 8px;
@ -534,64 +617,78 @@ main table {
font-family: "標楷體"; font-family: "標楷體";
width: 800px; width: 800px;
} }
main table tr:nth-child(even), main table tr:nth-child(even),
main table tr:nth-child(odd) { main table tr:nth-child(odd) {
background-color: #fff; background-color: #fff;
} }
main table tr { main table tr {
font-size: 12pt; font-size: 12pt;
width: 100%; width: 100%;
position: relative; position: relative;
} }
main table tr.mouseover { main table tr.mouseover {
background-color: #ccc; background-color: #ccc;
} }
main table tr h2 { main table tr h2 {
font-size: 18pt; font-size: 18pt;
} }
main table tr td { main table tr td {
width: 100%; width: 100%;
height: 100%; height: 100%;
line-height: 2; line-height: 2;
display: flex; display: flex;
} }
main table tr td.center { main table tr td.center {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
main table tr td.list { main table tr td.list {
width: 100%; width: 100%;
height: 100%; height: 100%;
white-space: nowrap; white-space: nowrap;
display: flex; display: flex;
} }
main table tr td.list span { main table tr td.list span {
width: 60px; width: 60px;
min-height: 100%; min-height: 100%;
display: block; display: block;
} }
main table tr td.list > p {
main table tr td.list>p {
display: block; display: block;
text-align: justify; text-align: justify;
} }
main table tr td.list div { main table tr td.list div {
max-width: calc(100% - 60px); max-width: calc(100% - 60px);
white-space: normal; white-space: normal;
} }
main table tr td.list div.text-justify { main table tr td.list div.text-justify {
display: flex; display: flex;
width: 100%; width: 100%;
justify-content: space-between; justify-content: space-between;
} }
main table tr.date td > div {
main table tr.date td>div {
width: 100%; width: 100%;
text-align: right; text-align: right;
} }
main table tr.date td > div.text-justify {
main table tr.date td>div.text-justify {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
main table td, main table td,
main table th { main table th {
padding: 8px; padding: 8px;
@ -604,13 +701,16 @@ main table th {
padding: 20px; padding: 20px;
font-family: "標楷體"; font-family: "標楷體";
} }
.prview.none { .prview.none {
display: none; display: none;
} }
.prview h2 { .prview h2 {
font-size: 18pt; font-size: 18pt;
text-align: center; text-align: center;
} }
.prview p { .prview p {
font-size: 12pt; font-size: 12pt;
} }
@ -630,21 +730,25 @@ main table th {
0% { 0% {
transform: rotate(0deg); transform: rotate(0deg);
} }
100% { 100% {
transform: rotate(360deg); transform: rotate(360deg);
} }
} }
.contract-input-component .form, .contract-input-component .form,
.contract-management .form, .contract-management .form,
.contract-new-apply-component .form { .contract-new-apply-component .form {
margin: 0 auto; margin: 0 auto;
} }
.contract-input-component .form .dropdown, .contract-input-component .form .dropdown,
.contract-management .form .dropdown, .contract-management .form .dropdown,
.contract-new-apply-component .form .dropdown { .contract-new-apply-component .form .dropdown {
width: 100%; width: 100%;
margin-top: 7px; margin-top: 7px;
} }
.contract-input-component .form .savebtn, .contract-input-component .form .savebtn,
.contract-management .form .savebtn, .contract-management .form .savebtn,
.contract-new-apply-component .form .savebtn { .contract-new-apply-component .form .savebtn {
@ -652,16 +756,18 @@ main table th {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
width: 70px; width: 700px;
height: 45px; height: 45px;
font-size: 15px; font-size: 10px;
} }
.contract-input-component .form table .fixed, .contract-input-component .form table .fixed,
.contract-management .form table .fixed, .contract-management .form table .fixed,
.contract-new-apply-component .form table .fixed { .contract-new-apply-component .form table .fixed {
padding: 8px 0; padding: 8px 0;
cursor: not-allowed; cursor: not-allowed;
} }
.contract-input-component .form table .alerttext, .contract-input-component .form table .alerttext,
.contract-management .form table .alerttext, .contract-management .form table .alerttext,
.contract-new-apply-component .form table .alerttext { .contract-new-apply-component .form table .alerttext {
@ -672,32 +778,38 @@ main table th {
font-weight: 900; font-weight: 900;
padding: 0; padding: 0;
} }
.contract-input-component .form input[type=file], .contract-input-component .form input[type=file],
.contract-management .form input[type=file], .contract-management .form input[type=file],
.contract-new-apply-component .form input[type=file] { .contract-new-apply-component .form input[type=file] {
padding: 12px 20px; padding: 12px 20px;
margin: 8px 0; margin: 8px 0;
} }
.contract-input-component .form span, .contract-input-component .form span,
.contract-management .form span, .contract-management .form span,
.contract-new-apply-component .form span { .contract-new-apply-component .form span {
font-weight: 900; font-weight: 900;
} }
.contract-input-component .form span.successtext, .contract-input-component .form span.successtext,
.contract-management .form span.successtext, .contract-management .form span.successtext,
.contract-new-apply-component .form span.successtext { .contract-new-apply-component .form span.successtext {
color: #0a0; color: #0a0;
} }
.contract-input-component .form span.failtext, .contract-input-component .form span.failtext,
.contract-management .form span.failtext, .contract-management .form span.failtext,
.contract-new-apply-component .form span.failtext { .contract-new-apply-component .form span.failtext {
color: #a00; color: #a00;
} }
.contract-input-component .form span.readtext, .contract-input-component .form span.readtext,
.contract-management .form span.readtext, .contract-management .form span.readtext,
.contract-new-apply-component .form span.readtext { .contract-new-apply-component .form span.readtext {
color: #aa0; color: #aa0;
} }
.contract-input-component .form input[type=number]::-webkit-outer-spin-button, .contract-input-component .form input[type=number]::-webkit-outer-spin-button,
.contract-input-component .form input[type=number]::-webkit-inner-spin-button, .contract-input-component .form input[type=number]::-webkit-inner-spin-button,
.contract-management .form input[type=number]::-webkit-outer-spin-button, .contract-management .form input[type=number]::-webkit-outer-spin-button,
@ -707,11 +819,13 @@ main table th {
-webkit-appearance: none; -webkit-appearance: none;
margin: 0; margin: 0;
} }
.contract-input-component .form input[type=number], .contract-input-component .form input[type=number],
.contract-management .form input[type=number], .contract-management .form input[type=number],
.contract-new-apply-component .form input[type=number] { .contract-new-apply-component .form input[type=number] {
-moz-appearance: textfield; -moz-appearance: textfield;
} }
.contract-input-component .error, .contract-input-component .error,
.contract-management .error, .contract-management .error,
.contract-new-apply-component .error { .contract-new-apply-component .error {
@ -719,6 +833,7 @@ main table th {
flex-direction: column; flex-direction: column;
margin: 15px; margin: 15px;
} }
.contract-input-component .error .errortext, .contract-input-component .error .errortext,
.contract-management .error .errortext, .contract-management .error .errortext,
.contract-new-apply-component .error .errortext { .contract-new-apply-component .error .errortext {
@ -726,22 +841,27 @@ main table th {
font-weight: 500; font-weight: 500;
color: #a00; color: #a00;
} }
.contract-input-component .input-group-btn, .contract-input-component .input-group-btn,
.contract-management .input-group-btn, .contract-management .input-group-btn,
.contract-new-apply-component .input-group-btn { .contract-new-apply-component .input-group-btn {
font-size: 16px; font-size: 16px;
} }
@media screen and (max-width: 600px) { @media screen and (max-width: 600px) {
.contract-input-component table, .contract-input-component table,
.contract-management table, .contract-management table,
.contract-new-apply-component table { .contract-new-apply-component table {
border: 0; border: 0;
} }
.contract-input-component table thead, .contract-input-component table thead,
.contract-management table thead, .contract-management table thead,
.contract-new-apply-component table thead { .contract-new-apply-component table thead {
display: none; display: none;
} }
.contract-input-component table tr, .contract-input-component table tr,
.contract-management table tr, .contract-management table tr,
.contract-new-apply-component table tr { .contract-new-apply-component table tr {
@ -749,6 +869,7 @@ main table th {
display: block; display: block;
border-bottom: 2px solid #ddd; border-bottom: 2px solid #ddd;
} }
.contract-input-component table td, .contract-input-component table td,
.contract-management table td, .contract-management table td,
.contract-new-apply-component table td { .contract-new-apply-component table td {
@ -757,11 +878,13 @@ main table th {
font-size: 14px; font-size: 14px;
border-bottom: 1px dotted #ccc; border-bottom: 1px dotted #ccc;
} }
.contract-input-component table td:last-child, .contract-input-component table td:last-child,
.contract-management table td:last-child, .contract-management table td:last-child,
.contract-new-apply-component table td:last-child { .contract-new-apply-component table td:last-child {
border-bottom: 0; border-bottom: 0;
} }
.contract-input-component table td:before, .contract-input-component table td:before,
.contract-management table td:before, .contract-management table td:before,
.contract-new-apply-component table td:before { .contract-new-apply-component table td:before {
@ -771,6 +894,7 @@ main table th {
font-weight: bold; font-weight: bold;
} }
} }
.contract-input-component .images, .contract-input-component .images,
.contract-management .images, .contract-management .images,
.contract-new-apply-component .images { .contract-new-apply-component .images {
@ -778,20 +902,23 @@ main table th {
flex-wrap: wrap; flex-wrap: wrap;
padding: 20px; padding: 20px;
} }
.contract-input-component .images > .image,
.contract-management .images > .image, .contract-input-component .images>.image,
.contract-new-apply-component .images > .image { .contract-management .images>.image,
.contract-new-apply-component .images>.image {
position: relative; position: relative;
margin: 10px; margin: 10px;
} }
.contract-input-component .images > .image:hover > i,
.contract-management .images > .image:hover > i, .contract-input-component .images>.image:hover>i,
.contract-new-apply-component .images > .image:hover > i { .contract-management .images>.image:hover>i,
.contract-new-apply-component .images>.image:hover>i {
opacity: 1; opacity: 1;
} }
.contract-input-component .images > .image > i,
.contract-management .images > .image > i, .contract-input-component .images>.image>i,
.contract-new-apply-component .images > .image > i { .contract-management .images>.image>i,
.contract-new-apply-component .images>.image>i {
position: absolute; position: absolute;
top: -12px; top: -12px;
right: -12px; right: -12px;
@ -834,4 +961,6 @@ label {
display: inline-flex; display: inline-flex;
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
margin-top: 0.5rem; margin-top: 0.5rem;
}/*# sourceMappingURL=style.css.map */ }
/*# sourceMappingURL=style.css.map */

2
wms/contract-repair/styles/style.scss

@ -707,7 +707,7 @@ main {
align-items: center; align-items: center;
width: 70px; width: 70px;
height: 45px; height: 45px;
font-size: 15px; font-size: 10px;
} }
table { table {

10
wms/contract/contract-new-apply.php

@ -495,7 +495,7 @@ $para = "function_name=pricereview&" . $token_link;
<td>結果</td> <td>結果</td>
<td colspan=2>意見</td> <td colspan=2>意見</td>
<td>時間</td> <td>時間</td>
<td colspan=2><?php if (($user_id === "M0174" || $user_id === "M0107" || $user_id === "M0060" || $user_id == "TEST02" || $user_id == "TEST03") && $status == 1) : ?>審核意見<?php endif; ?></td> <td colspan=2><?php if (($user_id === "M0174" || $user_id === "M0175" || $user_id === "M0060" || $user_id == "TEST02" || $user_id == "TEST03") && $status == 1) : ?>審核意見<?php endif; ?></td>
</tr> </tr>
<tr> <tr>
<td>營業員</td> <td>營業員</td>
@ -508,7 +508,7 @@ $para = "function_name=pricereview&" . $token_link;
<td colspan=2>---</td> <td colspan=2>---</td>
<td><?php echo ($contract['submit_date']) ?? "---"; ?> </td> <td><?php echo ($contract['submit_date']) ?? "---"; ?> </td>
<td colspan=2 rowspan="3"> <td colspan=2 rowspan="3">
<?php if (($user_id === "M0174" || $user_id === "M0107" || $user_id === "M0060" || $user_id == "TEST02" || $user_id == "TEST03") && $status == 1) : ?> <?php if (($user_id === "M0174" || $user_id === "M0175" || $user_id === "M0060" || $user_id == "TEST02" || $user_id == "TEST03") && $status == 1) : ?>
<textarea class="form-control opinion" x-model="data.review_comment"></textarea> <textarea class="form-control opinion" x-model="data.review_comment"></textarea>
<?php endif; ?> <?php endif; ?>
</td> </td>
@ -572,14 +572,14 @@ $para = "function_name=pricereview&" . $token_link;
</template> </template>
</button> </button>
<?php endif; ?> <?php endif; ?>
<?php if ($status == 1 && ((($user_id == "M0107" || $user_id == "TEST02") && $contract['progress'] <= 1) || (($user_id == "M0060" || $user_id == "TEST03") && $contract['progress'] == 2) || $user_id == "M0174")) : ?> <?php if ($status == 1 && ((($user_id == "M0175" || $user_id == "TEST02") && $contract['progress'] <= 1) || (($user_id == "M0060" || $user_id == "TEST03") && $contract['progress'] == 2) || $user_id == "M0174")) : ?>
<button x-show="true" x-on:click="agree()" :disabled="isLoading" type="button" class="btn btn-primary btn-lg pull-right savebtn"> <button x-show="true" x-on:click="agree()" :disabled="isLoading" type="button" class="btn btn-primary btn-lg pull-right savebtn">
<template x-if="!isLoading"> <template x-if="!isLoading">
<span> <span>
<?php <?php
if (($user_id === "M0107" || $user_id == "TEST02") && $contract['progress'] <= 1) { if (($user_id === "M0175" || $user_id == "TEST02") && $contract['progress'] <= 1) {
echo "同意(上呈)"; echo "同意(上呈)";
// } elseif (($user_id === "M0060" || $user_id == "TEST03") && $contract['progress'] == 2) { } elseif (($user_id === "M0060" || $user_id == "TEST03") && $contract['progress'] == 2) {
echo "同意(結案)"; echo "同意(結案)";
} }
?> ?>

Loading…
Cancel
Save