|
@@ -178,13 +178,18 @@ class Update extends Page
|
|
|
}
|
|
|
if (isset($remote[$k])) {
|
|
|
$data['update'][$remote[$k][0]]['remote'] = Dever::url($remote[$k][1]);
|
|
|
- $result = Dever::call($remote[$k][1], array($v), 'api');
|
|
|
- if ($result) {
|
|
|
- $this->setUpdate($info, $data, $result);
|
|
|
+ if ($field[$k]['type'] == 'cascader' && !isset($field[$k]['option'])) {
|
|
|
+
|
|
|
+ } else {
|
|
|
+ $result = Dever::call($remote[$k][1], array($v), 'api');
|
|
|
+ if ($result) {
|
|
|
+ $this->setUpdate($info, $data, $result);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if (isset($show[$k])) {
|
|
|
$data['update'][$show[$k][0]]['show'] = $this->getShow($show[$k][1], $info);
|
|
|
+ $info[$k] = $data['update'][$show[$k][0]]['show'];
|
|
|
}
|
|
|
}
|
|
|
if (isset($field[$k]) && isset($field[$k]['index'])) {
|
|
@@ -196,7 +201,7 @@ class Update extends Page
|
|
|
if ($default) {
|
|
|
foreach ($default as $k => $v) {
|
|
|
$data['update'][$v[0]]['value'] = $this->getShow($v[1], $info);
|
|
|
- $data['field'][$k] = $this->getShow($v[1], $info);
|
|
|
+ $info[$k] = $data['field'][$k] = $data['update'][$v[0]]['value'];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -354,8 +359,25 @@ class Update extends Page
|
|
|
$sku[$v['key']] = array($v['where'], $v['content']['field'], $v['spec'], $v['spec_field'], $input[$v['key'] . '_spec'], $input[$v['key']]);
|
|
|
}
|
|
|
|
|
|
- } elseif (strpos($v['key'], '/')) {
|
|
|
- $other[$v['key']] = array($v['where'], $v['content']['field'], $v['content']['drag'], $input[$v['key']]);
|
|
|
+ } elseif (strpos($v['key'], '/') && $v['type'] != 'hidden') {
|
|
|
+ if (isset($v['field'])) {
|
|
|
+ $value = $input[$v['key']] ?? false;
|
|
|
+ if (strpos($v['key'], '#')) {
|
|
|
+ $v['key'] = str_replace('#', '', $v['key']);
|
|
|
+ }
|
|
|
+ $other_id = $input[$v['key'] . '_id'] ?? 0;
|
|
|
+ $value = array
|
|
|
+ (
|
|
|
+ 0 => array('id' => $other_id, $v['field'] => $value)
|
|
|
+ );
|
|
|
+ if (isset($other[$v['key']])) {
|
|
|
+ $other[$v['key']][3][0] += $value[0];
|
|
|
+ } else {
|
|
|
+ $other[$v['key']] = array($v['where'], false, false, $value);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $other[$v['key']] = array($v['where'], $v['content']['field'], $v['content']['drag'], $input[$v['key']]);
|
|
|
+ }
|
|
|
} else {
|
|
|
$this->doData($data, $v['key'], $input[$v['key']], $this->config['field']);
|
|
|
}
|
|
@@ -430,7 +452,7 @@ class Update extends Page
|
|
|
$where = array();
|
|
|
$name = array();
|
|
|
foreach ($check as $k => $v) {
|
|
|
- if (isset($data[$v])) {
|
|
|
+ if (isset($data[$v]) && $data[$v]) {
|
|
|
if (isset($field[$v]) && isset($field[$v]['name'])) {
|
|
|
$n = $field[$v]['name'];
|
|
|
} elseif (isset($this->db->config['struct'][$v])) {
|
|
@@ -459,7 +481,17 @@ class Update extends Page
|
|
|
{
|
|
|
if (isset($this->config['start']) && $this->config['start']) {
|
|
|
$data['id'] = $id;
|
|
|
- $data = Dever::call($this->config['start'], array($this->db, $data));
|
|
|
+ if (is_array($this->config['start'])) {
|
|
|
+ $result = $data;
|
|
|
+ foreach ($this->config['start'] as $k => $v) {
|
|
|
+ $result = Dever::call($v, array($this->db, $result));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $result = Dever::call($this->config['start'], array($this->db, $data));
|
|
|
+ }
|
|
|
+ if ($result) {
|
|
|
+ $data = $result;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -469,7 +501,7 @@ class Update extends Page
|
|
|
$data['id'] = $id;
|
|
|
if (is_array($this->config['end'])) {
|
|
|
foreach ($this->config['end'] as $k => $v) {
|
|
|
- Dever::call($v, array($data));
|
|
|
+ Dever::call($v, array($this->db, $data));
|
|
|
}
|
|
|
} else {
|
|
|
Dever::call($this->config['end'], array($this->db, $data));
|
|
@@ -491,7 +523,7 @@ class Update extends Page
|
|
|
$input = $v[3];
|
|
|
$value = array();
|
|
|
foreach ($input as $k1 => $v1) {
|
|
|
- if (isset($v1['id'])) {
|
|
|
+ if (isset($v1['id']) && $v1['id']) {
|
|
|
$value['id'] = $v1['id'];
|
|
|
}
|
|
|
foreach ($common as $k2 => $v2) {
|
|
@@ -505,12 +537,16 @@ class Update extends Page
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- foreach ($update as $k2 => $v2) {
|
|
|
- if (isset($v1[$k2])) {
|
|
|
- $this->doData($value, $k2, $v1[$k2], $set->config['field']);
|
|
|
- } else {
|
|
|
- $value[$k2] = '';
|
|
|
+ if ($update) {
|
|
|
+ foreach ($update as $k2 => $v2) {
|
|
|
+ if (isset($v1[$k2])) {
|
|
|
+ $this->doData($value, $k2, $v1[$k2], $set->config['field']);
|
|
|
+ } else {
|
|
|
+ $value[$k2] = '';
|
|
|
+ }
|
|
|
}
|
|
|
+ } else {
|
|
|
+ $value += $v1;
|
|
|
}
|
|
|
if ($drag) {
|
|
|
$value[$drag] = $k1+1;
|